<asp:datagrid id="dgJob" style="Z-INDEX: 101; LEFT:.......
......
<Columns>
<asp:TemplateColumn HeaderText="选择">
<HeaderStyle Font-Size="X-Small" HorizontalAlign="Center" Width="2%"></HeaderStyle>
<ItemTemplate>
<asp:CheckBox id="select" Runat="server" Checked="False" onclick="select(this)"> </asp:CheckBox>
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="JO_No"...................... <script language="javascript">
function select(obj)
{
            第一个问题:判断checkbox是否被选中.
            第二个问题:取得选中的datagrid中的值.
         }
         </script>请多多指教!

解决方案 »

  1.   

    <asp:CheckBox id="select" Runat="server" Checked="False" onclick="select(this)"> </asp:CheckBox>
    这样写不行吧~
    在CS,LOAD加:
         select.attrib.add("onclick","select(this)");第一个问题:判断checkbox是否被选中.
    if (this.checked == true)
        alert("选中");
    else
        alert("不中");
      

  2.   

    try something like (didn't test, so it might not work)<script language="javascript">
    function select(obj)
    {
                if (obj.checked) //是否被选中
        {
    //...
                }     var p = obj.parentElement;
        while (p.tagName != "TR")
    p = p.parentElement;     var inputs = p.all.tags("INPUT");
        for (var i=0; i < inputs.length; i++)
    alert(inputs[i].value);
             }
             </script>
      

  3.   

    http://www.cnblogs.com/smilnet/archive/2004/07/17/25150.aspx
    你可以看看这个很有用的
      

  4.   

    TO: saucer(思归)
    很谢谢你的答复,但我想要的是CheckBox被选中的DataGrid中的值呀.而你的答案应该是整个DataGrid的值.
      

  5.   

    what do you mean by CheckBox被选中的DataGrid中的值? CheckBox所在行的控件的值?while (p.tagName != "TR")
    p = p.parentElement;     var inputs = p.all.tags("INPUT");will give the TR element for the current row
      

  6.   

    TO: saucer(思归)
    我已经试过你的代码了,一点反应都没有.
    其实我的意思就是,在DataGrid里第一列是一个CheckBox,当选中时,我想要的是该行的其它列的值.function select(obj)
    {
      if(obj.checked)
      {
        var p=obj.parentElement;
        while(p.tagName!="TR")
        p=p.parentElement;
        var inputs=p.all.tags("INPUT");
        for(var i=0;i<inputs.length;i++)
        alert(inputs[i].value);
      }
    }
      

  7.   

    我不是用JS实现,是后台实现的,参考一下吧,希望对你用帮助:
    .aspx文件中相关代码:
    <asp:TemplateColumn HeaderText="选择">
    <HeaderStyle Width="30px"></HeaderStyle>
    <ItemStyle HorizontalAlign="Center" VerticalAlign="Middle"></ItemStyle>
    <HeaderTemplate>
    <asp:CheckBox id="cbSelectAll" runat="server" OnCheckedChanged="cbSelectAll_CheckedChanged" AutoPostBack="True"
    ToolTip="全选/全不选"></asp:CheckBox>
    </HeaderTemplate>
    <ItemTemplate>
    <asp:CheckBox id="ckSelected" Runat="server"></asp:CheckBox><INPUT id=SelectedID type=hidden value='<%# DataBinder.Eval(Container.DataItem, "FCRgnID")%>' name=SelectedID runat="server">
    </ItemTemplate>
    </asp:TemplateColumn>
    .cs文件相关代码:
    //获取选中的行ID信息
    private System.Collections.ArrayList GetSelectIDList()
    {
    string sID;
    System.Web.UI.WebControls.CheckBox ckSelected;
    System.Collections.ArrayList mySelectedIDs=new System.Collections.ArrayList();
    foreach(DataGridItem lsDataGridItem in dgChargingRgn.Items)
    {
    ckSelected=(CheckBox)lsDataGridItem.FindControl("ckSelected");
    if(ckSelected.Checked==true)
    {
    sID=((HtmlInputHidden)lsDataGridItem.FindControl("SelectedID")).Value;
    mySelectedIDs.Add(sID);
    }
    }
    return mySelectedIDs;
    }
      

  8.   

    select() is an existing method name, try selectObj()
    <%@ Page Debug="true" %>
    <%@ Import Namespace="System.Data" %><html>
    <script language="C#" runat="server">void Page_Load(Object sender, EventArgs e) 
    {
     if (!IsPostBack)
     {
    MyDataGrid.DataSource = new string[] {"a","b","c"};
    MyDataGrid.DataBind();
     }
    }</script><body>    <h3><font face="Verdana">Specifying Columns in DataGrid</font></h3>    <form runat=server>      <ASP:DataGrid id="MyDataGrid" runat="server"
        
            AutoGenerateColumns="false">
              <Columns>
              <asp:TemplateColumn>
    <ItemTemplate>
    <asp:TextBox id="txt" Runat="server" Text='<%# Container.DataItem%>'/></ItemTemplate>
    </asp:TemplateColumn>
               <asp:TemplateColumn>
    <ItemTemplate>
    <asp:CheckBox id="select" Runat="server" Checked="False" onclick="selectObj(this)"> </asp:CheckBox></ItemTemplate>
    </asp:TemplateColumn>
    </Columns>
          </asp:DataGrid> <asp:Button Text="Click Me" runat="server"/>  </form></body>
    </html><script language="javascript">
    function selectObj(obj)
    {
    alert(obj.checked);
                if (obj.checked) //是否被选中
        {
    //...
                }     var p = obj.parentElement;
        while (p.tagName != "TR")
    p = p.parentElement;     var inputs = p.all.tags("INPUT");
        for (var i=0; i < inputs.length; i++)
    alert(inputs[i].value);
             }
             </script>
      

  9.   

    http://dotnet.aspx.cc/ShowDetail.aspx?id=8ADE535F-AD40-4DE3-A962-A64B4FAF12C4
      

  10.   

    var objs = document.getElementsByTagName("input");
    for(i=0;i<objs.length;i++){
      if(objs[i].type=="checkbox"){
        if(objs[i].checked){
            var objTR = objs[i].parentElement; //选中checkbox所在的行
            rReturn = getTRValue(objTR); //获取行的值,用“/”分隔
        }
      }
    }function getTRValue(objTR){
     r="";
     if(objTR != null){
      for(j=0;j<objTR.cells.length;j++)
        r += objTR.cells(i).innerText + "/";
     }
     return r;
    }
      

  11.   

    但是现在得到的值是"true"和"on".
    我要的值是:<asp:TextBox id="txt" Runat="server" Text='<%# Container.DataItem%>'/>的值.
      

  12.   

    谢谢各位的答复,但问题还是没有解决........
    czhenq(醉眼看别人成双成对,无人知我黯淡相思流泪) 的思路是对的,但运行起来还是得不到答案.
      

  13.   

    if you tried the above code, you will see that "a" or "b" or "c" will be displayed, you can further restrict the type     var inputs = p.all.tags("INPUT");
        for (var i=0; i < inputs.length; i++)
                      if (inputs[i].type == "text")
       alert(inputs[i].value);
      

  14.   

    document.all.控件ID.value 通过这个来判断
      

  15.   

    saucer(思归)大哥真行,佩服!
    让我慢慢消化........