说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

哎,搞了快一天了,这个删除的东东还是搞不出来,各位HELP ME?

编辑:说三道四文库 发布时间:2018-01-23 06:16
HTML文档下载 WORD文档下载 PDF文档下载
这使用的是DATAGRID的模板列,好象它无法判断选择框是选中的?
<asp:CheckBox ID="Remove" Runat="server"  />
<asp:Label Visible="False" ID="DelID" Runat="server"  Text='<%# DataBinder.Eval(Container,"DataItem.book_id") %>'>
</asp:Label>

private void DelBook_Click(object sender, System.EventArgs e)
{//删除记录     无法取得删除的 book_id
foreach (DataGridItem dg in book.Items)
{
if (((CheckBox)dg.FindControl("Remove")).Checked)
{
Response.Write("1230");
Label DelID = (Label) dg.FindControl("DelID");
string IDSql="delete from book where book_id="+Int32.Parse(DelID.Text);
SqlConn DBconn=new SqlConn();
DBconn.connstr="business";
DBconn.Exec(IDSql);  
        }
}
    }
function getID()
{
var arrChks = new Array();
arrChks     = GetChkVlas(document.getElementsByName('nchkID'));
}
/*-----------------------------------------------------------*/
/* 函数功能:返回选中的 checkbox 的值的数组 */
/* 参数chks:checkbox 控件数组              */
/* 返回值  :选中的 checkbox 的值的数组     */
/* 作者    :张小斌                         */
function GetChkVlas(chks)
{
  var arrChks = new Array();
  arrChks     = chks;
  
  var iNum   = arrChks.length;
  var arrVal = new Array();
  
  var j = 0;
  for(i=0;i<iNum;i++)
  {
    if(arrChks[i].checked)
    {
      arrVal[j] = arrChks[i].value;
      j++;
    }
  }
  
  return arrVal;
}
/**---------------------------------------------------------*/
怎么没人回答我的问题啊?
我都快疯了.........
function getID()
{
var arrChks = new Array();
arrChks     = GetChkVlas(document.getElementsByName('nchkID'));
}
/*-----------------------------------------------------------*/
/* 函数功能:返回选中的 checkbox 的值的数组 */
/* 参数chks:checkbox 控件数组              */
/* 返回值  :选中的 checkbox 的值的数组     */
/* 作者    :张小斌                         */
function GetChkVlas(chks)
{
  var arrChks = new Array();
  arrChks     = chks;
  
  var iNum   = arrChks.length;
  var arrVal = new Array();
  
  var j = 0;
  for(i=0;i<iNum;i++)
  {
    if(arrChks[i].checked)
    {
      arrVal[j] = arrChks[i].value;
      j++;
    }
  }
  
  return arrVal;
}
/**---------------------------------------------------------*/
我怀疑你写错了SqlConnection,前面判断Checkbox没有问题
或者你把IDSql打印出来看看.........
Label DelID = (Label) dg.FindControl("DelID");
string IDSql="delete from book where book_id="+Int32.Parse(DelID.Text);
SqlConn myConnection=new SqlConn();
    SqlCommand myCommand = new SqlCommand(IDSql);
    myCommand.Connection = myConnection;
    myConnection.Open();
    myCommand.ExecuteNonQuery();
    myCommand.Connection.Close();

语句是没有问题的
if (((CheckBox)dg.FindControl("Remove")).Checked)后的语句都执行不了
连Response.Write("1230");
都显示不出来,请问还有那里有误吗?


meetweb(niky),你好
他是没有执行IF里面的语句
freecs(红茗) ,你好

你能帮我写出来吗?
if (((CheckBox)dg.FindControl("Remove")).Checked)
这句实际上就是不执行。
得从前台想办法
给你个js文件CheckListClass,放在同一目录下即可不需要改动
--------------------
function CheckListClass()
{}
CheckListClass.prototype.checkSelectDel = checkSelectDel;
//验证列表页--删除
 function checkSelectDel(DataGridName)
{
var i;
         //这里的数一定要大于你在页面上的checkbox数量,你可以看一下页面执行后
         //checkbox的id的变化规律
for( i=0;i<20;i++)
{
var str = DataGridName + "__ctl" + i + "_CheckBox1";

if(document.getElementById(str)!=null && document.getElementById(str).checked==true)
{
break;
}
}
if(i==20)
{
alert("请选中所要删除的项!");
return false;
}
else
{
var tr = confirm("确实删除选中的项吗?");
return tr;
}
}

--------------------
aspx文件,需要改一下,把下面的代码放到<head>里
--------------------
                  //后面有解释 
                  <style>.disTd { DISPLAY: none }
</style>
                  //js的路径一定要写正确
<script language="javascript" src="CheckListClass.js"></script>
<script language="javascript">
                  //这句一定要有,实例化一个类,因为js写了一个类
var checks = new CheckListClass();
function delInfo()
{        
                           //传checkbox的id
if(!checks.checkSelectDel("NewsList"))
return false;
else
{
var idList="";
for(var i=0;i<20;i++)
{        
                                                       //这里要改一下
var str = "NewsList__ctl" + i + "_CheckBox1";

if(document.getElementById(str)!=null && document.getElementById(str).checked==true)
{        //这里要看你的模板里delid的位置,你这里是在checkbox的后面,所以用nextSibling,但是不能用visible=false隐藏,否则js找不到
var id = document.getElementById(str).parentElement.nextSibling.innerHTML;
if(idList=="")
idList=id;
else
idList=idList+","+id;
//这里也要改一下 location.href="News_List.aspx?IdToDel="+idList;

}
}



}
}
最后别忘了,要delete的button需要调用delInfo()

将OpenStack私有云部署到Hadoop MapReduce环境 Web设计师必备的10款最佳排版工具 诺基亚CEO谈平板计划 Android为候选系统 244亿美元!戴尔公司正式完成私有化 对抗苹果 Facebook或推Find My Friends应用 怎么取年月日? 关于列表框别名问题? 关于安全的数据库管理系统 谁有关于.NET下开发国际化软件的详细资料? 何为ActiveX控件在c#中如何使用 VPN 怎么样捕获“pubs数据库的事务日志写满”的错误 文件上传问题,如何返回上传后的文件名 如何通过pc的并口向步进机发送定时脉冲信号? 40尺高柜集装箱装装多少60*40*40CM的货? 一个长方体的正面和上面的面积和为90cm的立方,它 1.一个长方体,如果长增加2cm,则体积增加40c 老师用泥巴做了一个长方体.如果把这个长方体的长增加 把一个铁块放入一个长为40cm,宽为15cm的长方 已知长为:160CM 宽为:90CM 高为:80C 做一个无盖的圆柱形水桶,它的底面直径是40cm,高 一个圆的直径是.2米,立方怎么算 一段原木小头直径为40cm长为2m按材积算等于几立 美情报高官供出欧洲盟友 中国5城市上出差“一夜情”伤脸 澳最高法:不算工普京酷爱百达翡丽 萨科齐最爱Prad津巴布韦男蝉联“最丑先生”美男子遭遇车祸脑部创伤不能交流 女友半年查俩渎职侵权省部级官安徽宣城一中年男性痴迷网恋被妻子杀死中国代表呼吁武装冲突各方停止侵害儿童中国球迷无缘黄金时段观看巴萨VS埃瓦涉民生渎职案行政人员近7成幻笔仙踪唐铭神级穿越者心含九龙之纵横三界最强娱乐石槽村景区旅游大庆油田乐园旅游大庆油田历史陈列馆旅游大庆石油科技馆旅游铁人广场旅游
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘