在DataGri1_ItemCommand事件里:
CheckBox ch=new CheckBox();
ch=e.Item.FindControl("CheckBox1");
if(ch.Checked==true)
   弹窗口
else
 .....

解决方案 »

  1.   

    瞧瞧!
    ===弯弯的月亮小小的船,小小的船,两头尖,我在小小的船里坐,只看见闪闪
    的星星蓝蓝的天.
    ===本贴子以“现状”提供且没有任何担保,同时也没有授予任何权利 
    ===我的blog:http://loulanlouzhu.blogone.net
      

  2.   

    没用!!还有谁有高招!
    ===弯弯的月亮小小的船,小小的船,两头尖,我在小小的船里坐,只看见闪闪
    的星星蓝蓝的天.
    ===本贴子以“现状”提供且没有任何担保,同时也没有授予任何权利 
    ===我的blog:http://loulanlouzhu.blogone.net
      

  3.   

    弹出对话框是页面空白一片!谁还有好的方法!?或者说有方法吗!?
    ===弯弯的月亮小小的船,小小的船,两头尖,我在小小的船里坐,只看见闪闪
    的星星蓝蓝的天.
    ===本贴子以“现状”提供且没有任何担保,同时也没有授予任何权利 
    ===我的blog:http://loulanlouzhu.blogone.net
      

  4.   

    //获得包含CheckBoox的DataGrid(id为dgname)中CheckBox被选中的那一行的哪一列(valuecolumnindex)的值
    function getSelectIndex( dgname,valuecolumnindex )
    {
    var col;
    var obj;
    var index;
        var returnvalue;
        var count;
    col=document.all.tags("input");
    obj=document.all.item("dgname");
    index=0;
        count=0; for( i=0;i<col.length;i++ ){
    if( col[i].getAttribute("type")=="checkbox" && col[i].getAttribute("id").search(/dgname/i)>-1 ){
    if(col[i].getAttribute("checked")==true){
       returnvalue[count]=obj.rows[index].cells[valuecolumnindex].innerText;
                   count++;
    }
    index++;
            }
        }//你需要的
        if( count==0 )
           alert("请选择所要删除的记录!");
        return returnvalue;
    }
      

  5.   

    谢谢楼上支持!我试试!
    ===弯弯的月亮小小的船,小小的船,两头尖,我在小小的船里坐,只看见闪闪
    的星星蓝蓝的天.
    ===本贴子以“现状”提供且没有任何担保,同时也没有授予任何权利 
    ===我的blog:http://loulanlouzhu.blogone.net
      

  6.   

    有几个问题:1: valuecolumnindex -->>这个指什么!?是checkbox在datagrid中的列的索引吗!?比如第0列?
    2: 怎么触发做个脚本方法!?===弯弯的月亮小小的船,小小的船,两头尖,我在小小的船里坐,只看见闪闪
    的星星蓝蓝的天.
    ===本贴子以“现状”提供且没有任何担保,同时也没有授予任何权利 
    ===我的blog:http://loulanlouzhu.blogone.net
      

  7.   

    valuecolumnindex 是我想获得的DataGrid的某行(checkbox.checked==true)某列的值,那这个是列的index
    点击删除按钮触发,但是它的返回值是数组,所以你应该在
       if( count==0 )
           alert("请选择所要删除的记录!");
    后面加
       if( count==0 )
    {
           alert("请选择所要删除的记录!");
           return false;
    }
      

  8.   

    这样可以解决:
    把"删除"button放在一个<span></span>内<span onClick="javascript:return confirm('q确定要删除吗?')">
       <asp:button id="delete"></asp:button>
    </span>zhi执行的时候如果选择"确定",就执行button的内容,否则回到原来的页面
      

  9.   

    我是通过datagrid的模板列删除的!该怎么写才能执行那个脚本!?
    ===弯弯的月亮小小的船,小小的船,两头尖,我在小小的船里坐,只看见闪闪
    的星星蓝蓝的天.
    ===本贴子以“现状”提供且没有任何担保,同时也没有授予任何权利 
    ===我的blog:http://loulanlouzhu.blogone.net
      

  10.   

    向您请教:如何让控件TextBox具备根据客户输入内容的长度自动换行?
    又如何能在客户敲入回车的时候强制换行?
    有现成的属性吗?还是需要另外写入代码?客户在页面敲入回车,有时会自动自行某个页面控件的OnClick内容,如何关闭?有时需要在客户敲入回车的时候默认执行这个控件的点击事件,怎么做?Tab敲入的时候,怎么控制页面各个控件的激活次序?多谢了
      

  11.   

    结合以上各位的观点可知:
    在DataGri1_ItemCommand事件里:CheckBox ch=new CheckBox();
    ch=e.Item.FindControl("CheckBox1");linkbutton link1=new linkbutton();
    link1=e.item.findcontrol(linkbutton1);if(ch.Checked==true)
    link1.Attributes.Add("onclick", "return confirm('q确定要删除吗?')"); 
    else
     .....每次选中CheckBox时先重新绑定一次!
      

  12.   

    尽管你是用模板列设定的删除Button或是Linkbutton,在前台页面上,你一定可以看到这个控件的标识:
    在<asp:DataGrid>
       <columns>
        ;;;;;
         <asp:button...>
    你把这个button夹在手动写入的<span >中(上面写过了)就可以了另外建议不要使用模板列,这种做法不够灵活
      

  13.   

    我建议直接做一个按钮在页面上,然后在DataGrid中用模板列做CheckBox这样可以同时删除选中的多条记录,这个是大家的普遍做法了吧,不用在DataGrid中加什么按钮触发什么事件了 
    Page_load( object obj,EventArgs e )
    if( !IsPostBack )
    button.Attribute.Add("onclick","javascript:return getSelectIndex();");
      

  14.   

    checkbox 设置成模板列可以用html的代替,<input type=checkbox name=id value='+ 绑定的值 +'>button.Attribute.Add("onclick","javascript:var count=0;var obj = document.getElementsByName("id");for (var i=0;i<obj.length;i++){if(obj[i].checked){count++;}}if(count<1){alert('没有选中项');return false;}");
      

  15.   

    int j=0;
    for(int i=0;i<this.DataGrid1.Items.Count;i++)
    {
    CheckBox chk=(CheckBox)this.DataGrid1.Items[i].FindControl("CheckBoxID");
    if(chk.Checked==true)
    {
    j=1;
    break;
    }
    }
    if(j==0)
    {
    this.Response.Write("<script>window.alert('请选中您要删除的行')</script>");
    }
    else
    {
    this.Response.Write("<script>window.alert('是否要删除该项')</script>");
    }
      

  16.   

    先建个模板列 模板列里放checkbox控件然后用
    CheckBox ch=(CheckBox)e.Item.FindControl("CheckBoxID");然后判断
    if(ch.Checked==true)
    {
    ...
    }
    else
    {
    ...
    }
    -----------努力学习 不断实践 虚心讨教---------
      

  17.   

    写在DataGrid的OnItemDataBound事件里,就是说在OnItemDataBound事件中作判断,然后确定弹出什么Box
      

  18.   

    houjianxun(三千弱水)(独取一瓢清泉) :按照你所说的,可以弹出该对话框了!但是无法实现我的删除功能了!!private void SDGrid_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
    System.Web.UI.WebControls.CheckBox chk;
    for (int i = 0; i < SDGrid.Items.Count; i++)
    {
    chk = (CheckBox)SDGrid.Items[i].FindControl("FaceCodeCK");
    if (chk.Checked) //删除时有错误!“未将对象引用到实例!”
    {
    DD_MineGasInfoData.DeleteMineGasInfo(Convert.ToDateTime(e.Item.Cells[1].Text),Convert.ToInt32(e.Item.Cells[2].Text));
    }
    }
    SDGridBind();
    }请问有没有好的解决办法!
      

  19.   

    那你就再加一个TextBox如下:<asp:textbox id="ID" runat="server" Width="0px" ReadOnly="True"></asp:textbox>
    button.Attribute.Add("onclick","javascript:var count=0;var obj = document.getElementsByName(\"id\");for (var i=0;i<obj.length;i++){if(obj[i].checked){count++;}}if(count<1){alert('没有选中项');return false;}var str='(';for (var i=0;i<obj.length;i++){if(obj[i].checked){str += obj[i].value + ',';}}str = str.substring(0,str.lastIndexOf(',')) + ')';document.all.item('ID').value=str");
    //-----------------
    此处ID为服务器控件,得到的是复选框选中的ID集得,例如:(1,2,4,6)
    操作删除时可以这样写Sql语句"Delete From Note Where ID in "+ID.Text.Trim()
    //Delete From Note Where ID in (1,2,4,6)
      

  20.   

    <%@Page debug=true%>
    <%@Import Namespace="System.Data"%>
    <%@Register TagPrefix="web" Assembly="AspNetPager" Namespace="Wuqi.Webdiyer"%>
    <script Language="C#" runat="server">
    void Page_Load(object src,EventArgs e){
    if(!Page.IsPostBack){
    BindData();
    delbtn.Attributes.Add("onclick","return DeleteAlert()");
    }
    }void BindData(){
    DataTable table=new DataTable();
    table.Columns.Add(new DataColumn("编号",typeof(int)));
    table.Columns.Add(new DataColumn("姓名",typeof(string)));
    table.Columns.Add(new DataColumn("年龄",typeof(int)));
    table.Columns.Add(new DataColumn("生日",typeof(DateTime)));
    DataRow row;
    for(int i=0;i<8;i++){
    row=table.NewRow();
    row["编号"]=i;
    row["姓名"]="Person_"+i.ToString();
    row["年龄"]=i+20;
    row["生日"]=new DateTime(1979,12,i+1);
    table.Rows.Add(row);
    }
    grid1.DataSource=table;
    grid1.DataBind();
    }void DeleteItems(object src,EventArgs e){
    string idstr="您要删除的项是:";
    foreach(DataGridItem item in grid1.Items){
    CheckBox box=(CheckBox)item.FindControl("ckbox");
    if(box!=null&&box.Checked){
    idstr+=grid1.DataKeys[item.ItemIndex].ToString()+",";
    }
    }
    lbl.Text=idstr;
    }
    </script>
    <html>
    <HEAD>
    <TITLE> Webdiyer 制造:) (www.webdiyer.com) </TITLE>
    <META NAME="Generator" CONTENT="EditPlus">
    <META NAME="Author" CONTENT="Webdiyer">
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    function DeleteAlert(){
    var dom=document.all;
    var n=0;
    for(var i=0;i<dom.length;i++){
    var el=dom[i];
    if(el.tagName=="INPUT"&&el.id.indexOf("ckbox")>=0&&el.type.toUpperCase()=="CHECKBOX"&&el.checked){
    n++;
    }
    }
    if(n>0)
    return confirm("确实要删除这"+n+"项吗?");
    else{
    alert("请选择要删除的项!");
    return false;
    }
    }
    //-->
    </SCRIPT>
    </HEAD><body>
    <form runat="server">
    <asp:DataGrid runat="server" id="grid1" width="760px" AutogenerateColumns=false DataKeyField="编号">
    <Columns>
    <asp:BoundColumn DataField="姓名" ItemStyle-Width="30%" HeaderText="姓名"/>
    <asp:BoundColumn DataField="年龄" ItemStyle-Width="30%" HeaderText="年龄"/>
    <asp:BoundColumn DataField="生日" ItemStyle-Width="30%" HeaderText="生日"/>
    <asp:TemplateColumn HeaderText="选定" ItemStyle-Width="10%">
    <ItemTemplate>
    <asp:CheckBox runat="server" id="ckbox"/>
    </ItemTemplate>
    </asp:TemplateColumn>
    </Columns>
    </asp:DataGrid>
    <asp:Button onclick="DeleteItems" runat="server" id="delbtn" Text="删除"/>
    <p><asp:Label runat="server" id="lbl"/>
    </form>
    </body></html>