<%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="Fjtt_Web.WebForm1" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>WebForm1</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<FONT face="宋体">
<asp:DataGrid id="DataGrid1" style="Z-INDEX: 101; LEFT: 216px; POSITION: absolute; TOP: 96px"
runat="server" AutoGenerateColumns="False">
<Columns>
<asp:TemplateColumn>
<ItemTemplate>
<asp:CheckBox id="CKB" runat="server"></asp:CheckBox>
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="id" HeaderText="id"></asp:BoundColumn>
<asp:BoundColumn DataField="LinkName" HeaderText="链接名"></asp:BoundColumn>
<asp:BoundColumn DataField="regdate" HeaderText="日期"></asp:BoundColumn>
</Columns>
</asp:DataGrid>
<asp:TextBox id="TextBox1" style="Z-INDEX: 102; LEFT: 240px; POSITION: absolute; TOP: 256px"
runat="server"></asp:TextBox>
<asp:Button id="Button1" style="Z-INDEX: 103; LEFT: 288px; POSITION: absolute; TOP: 296px" runat="server"
Text="Button"></asp:Button>
</FONT>
</form>
</body>
</HTML>以上的就是我写的在aa.aspx中的页面的。读取数据出来后显示,然后我想要的功能是我选定记录前的复选框后我在点button按键,这个功能是要把在datagrid中数据前的复选框中有选中的记录的ID显示在textbox1中的所以说要怎么样在程序中断定那条几记录前的复选框有被先定呀请各位兄弟帮帮忙小弟感觉不尽分不在说有诚则灵呵呵。谢谢各位啦

解决方案 »

  1.   

    你可如下循环datagrid的方式来获取哪些被选中
    for(int i=0;i<this.datagrid1.Items.Count;i++)
    {
    CheckBox CKB = (CheckBox)this.datagrid1.Items[i].FindControl("CKB");
    if(CKB.Checked == true)
    {
    //表示被选中
    }
    }
      

  2.   

    hchxxzx(NET?摸到一点门槛) ( ) 说的正解,在datagrid中寻找控件都是这方法!
      

  3.   

    写个循环判断:
    Dim i AS INTEGER
    Dim strsql AS STRING
    strsql=""
            For i = 0 To Me.DataGrid1.Items.Count - 1
                If CType(DataGrid1.Items(i).Cells(0).FindControl("CKB"), CheckBox).Checked = True Then
                    
                    strsql = strsql & "记录的id号"
                 End If
            Next
    textbox1.text=strsql
      

  4.   

    checkbox我一直用客户端<INPUT id="UnSel_OID" style="DISPLAY: none; WIDTH: 24px; HEIGHT: 22px" type="text" size="1" name="UnSel_OID" runat="server">
    <INPUT id="Sel_OID" style="DISPLAY: none; WIDTH: 24px; HEIGHT: 22px" type="text" size="1" name="Sel_OID" runat="server">
    <INPUT id="Is_SelAll" style="DISPLAY: none; WIDTH: 24px; HEIGHT: 22px" type="text" size="1" name="Is_SelAll" runat="server">
    <asp:datagrid id="WL_CKWZBM" runat="server" Width="1650px" CssClass="td1" BackColor="#F0F0E8" BorderColor="#999999" AutoGenerateColumns="False" AllowPaging="True" DataKeyField="WL_CKWZBMOID" PageSize="13" AllowSorting="True">
    <AlternatingItemStyle BackColor="WhiteSmoke"></AlternatingItemStyle>
    <HeaderStyle ForeColor="Black" CssClass="tttable" BackColor="#BEE7FB"></HeaderStyle>
    <Columns>
    <asp:TemplateColumn HeaderText="选择">
    <HeaderStyle HorizontalAlign="Center" Width="40px"></HeaderStyle>
    <ItemStyle HorizontalAlign="Center"></ItemStyle>
    <HeaderTemplate>
    <FONT face="宋体"><INPUT id="SelAll" onclick="SellAlltoParent('OID_Check','Sel_OID','UnSel_OID','Is_SelAll')"
    type="checkbox" name="SelAll" title="点击选择全部记录" value=""></FONT>
    </HeaderTemplate>
    <ItemTemplate>
    <INPUT id=OID_Check onclick="Add_valueToParent('OID_Check','Sel_OID','UnSel_OID')" type=checkbox value='<%# DataBinder.Eval(Container.DataItem,"OID")%>' name=OID_Check>
    </ItemTemplate>
    </asp:TemplateColumn>
    <asp:BoundColumn DataField="WL_WZMC" SortExpression="WL_WZMC" HeaderText="物资名称">
    <HeaderStyle HorizontalAlign="Center"></HeaderStyle>
    <ItemStyle HorizontalAlign="Center"></ItemStyle>
    </asp:BoundColumn>
    <asp:BoundColumn DataField="WL_GG" SortExpression="WL_GG" HeaderText="规格型号">
    <HeaderStyle HorizontalAlign="Center" Width="150px"></HeaderStyle>
    <ItemStyle HorizontalAlign="Center"></ItemStyle>
    </asp:BoundColumn>
    ....省略其他的代码,只要注意到上面的“选择”模板列以及上面几个隐藏的文本框(UnSel_OID、Sel_OID、Is_SelAll)就可以了,上面绑定的是OID,可以改变绑定源
    相关js见下面:
    //名称:Sel_All
    //参数:obj_name(checkbox的id)
    //返回:无
    //描述:选中页面上指定id的所有checkbox
    //创建人:刘权 2004-10-18
    function Sel_All(obj_name,SelStr,UnSelStr,Is_SelAll)
    {
      
      if(typeof document.all[obj_name] == "undefined" || typeof document.all[SelStr]== "undefined" || typeof document.all[UnSelStr] == "undefined" || typeof document.all[Is_SelAll] == "undefined")
      {
        return false;
      }  if(document.all[Is_SelAll].value == "")  //当document.all[Is_SelAll].value为空时,表示当前没有全选。
      {
        event.srcElement.title = "点击取消所有记录选择";
        var Sel_Str="";
        if(document.all[obj_name].length == null && document.all[obj_name].disabled == false)   //当只有一个checkbox时
        {
           document.all[obj_name].checked = true;
           Sel_Str = document.all[obj_name].value;
        }
        else{
      for(var i = 0;i < document.all[obj_name].length;i++)
      {
    if(document.all[obj_name][i].disabled == false){
    document.all[obj_name][i].checked = true;
    Sel_Str = Sel_Str==""?document.all[obj_name][i].value:(Sel_Str+","+document.all[obj_name][i].value);   
    }
      }
    }
    //将选中的和没有选中的分别赋给相应的text值。
    document.all[SelStr].value = Sel_Str;      //--------------------选中的数组
    document.all[UnSelStr].value = "";
    document.all[Is_SelAll].value = "SelAll";  //--------------------是否触发
      }
      else  
      {
        event.srcElement.title = "点击选择全部记录"; 
        if(document.all[obj_name].length == null)   //当只有一个checkbox时
        {
          document.all[obj_name].checked = false;
        }
        else{
        for(var i = 0;i < document.all[obj_name].length;i++)
      {
     document.all[obj_name][i].checked = false;
      }
    }
    document.all[SelStr].value = "";
    document.all[UnSelStr].value = "";
    document.all[Is_SelAll].value = ""
      }
      return true;
    }
    //名称:Add_value
    //参数:obj_name(checkbox的id),SelStr(记录选择的checkbox的文本框),UnSelStr(记录没有被选中的checkbox的文本框)
    //返回:无
    //描述:当每次checkbox点击时触发,将选中的记录放置到SelStr文本框,将没有被选中的记录放置到UnSelStr文本框
    //创建人:刘权 2004-10-18
    function Add_value(obj_name,SelStr,UnSelStr)
    {
    var Sel_Str="";
    var UnSel_Str="";
    if(document.all[obj_name].length == null && document.all[obj_name].disabled == false)
        {
           if(document.all[obj_name].checked == true){
    Sel_Str = document.all[obj_name].value;
           }
        }
        else
        {
    for(var i = 0;i < document.all[obj_name].length; i++)
    {
    if(document.all[obj_name][i].checked == true && document.all[obj_name][i].disabled == false)
    {
    Sel_Str=Sel_Str==""?document.all[obj_name][i].value:(Sel_Str+","+document.all[obj_name][i].value);
    }
    else
    {
    UnSel_Str=UnSel_Str==""?document.all[obj_name][i].value:(UnSel_Str+","+document.all[obj_name][i].value);
    }
    }
    }
    if(typeof document.all[SelStr] !="undefined")
    {
      document.all[SelStr].value = Sel_Str;
    }
    if(typeof document.all[UnSelStr] !="undefined")
    {
      document.all[UnSelStr].value = UnSel_Str;
    } }想得到哪些checkbox的值被选定,在客户端可以用document.all["Sel_OID"].value,在服务器端直接用Sel_OID.Value就可以取到
      

  5.   

    兄弟谢谢啦。但还有一个问题就是我在作一个按键的话。点一下datagrid里面的复选框就都选中要怎么作的呀。
      

  6.   

    foreach(DataGridItem i in this.DataGrid1.Items)
    {
    id=((CheckBox)i.FindControl("CheckBox1")).Text;
    if(((CheckBox)i.FindControl("CheckBox1")).Checked==true) {
    }
    }
      

  7.   


    更正:
    <asp:TemplateColumn HeaderText="选择">
    <HeaderStyle HorizontalAlign="Center" Width="40px"></HeaderStyle>
    <ItemStyle HorizontalAlign="Center"></ItemStyle>
    <HeaderTemplate>
    <FONT face="宋体"><INPUT id="SelAll" onclick="Sel_All('OID_Check','Sel_OID','UnSel_OID','Is_SelAll')"
    type="checkbox" name="SelAll" title="点击选择全部记录" value=""></FONT>
    </HeaderTemplate>
    <ItemTemplate>
    <INPUT id=OID_Check onclick="Add_value('OID_Check','Sel_OID','UnSel_OID')" type=checkbox value='<%# DataBinder.Eval(Container.DataItem,"OID")%>' name=OID_Check>
    </ItemTemplate>注意:上面的方法调用错了,看更正的
    如果要换成按钮做成全选的话,直接在按钮上赋上Sel_All事件就可以了