什么行索引在数据网格中有一个模板复选框?

时间:2010-09-21 12:40:33

标签: asp.net datagrid checkbox row oncheckedchanged

我有一个数据网格,每个行都有一个复选框。 假设我在其中一个复选框的CheckedChanged事件中。有什么方法可以告诉复选框在哪个数据网格行?

3 个答案:

答案 0 :(得分:1)

您可以通过Parent属性,但必须执行chk.Parent.Parent之类的操作。我不知道当前行有多少个父引用是......

HTH。

答案 1 :(得分:0)

尝试这样的事情:

<script language="javascript" type="text/javascript">


        function rowno(rowindex) {
            var gridViewCtlId = document.getElementById("<%=GridView2.ClientID %>").rows[rowindex].cells[1].innerText;
            alert('you clicked on ' + gridViewCtlId);
        }

    </script>

<asp:GridView ID="GridView2" runat="server" OnRowDataBound="GridView1_RowDataBound1" PageSize="5">
        <Columns>
            <asp:TemplateField>
                <ItemTemplate>
                    <%--<asp:Button ID="Button1" runat="server" Text="Button" />--%>
                    <asp:CheckBox ID="CheckBox1" runat="server"  />
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>
    </asp:GridView>

in .cs

protected void GridView1_RowDataBound1(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                CheckBox delete = (CheckBox)e.Row.Cells[0].Controls[1];
                delete.Attributes.Add("onclick", "javascript:rowno(" + count + ")");
                count++;
            }
        }

答案 2 :(得分:0)

好的,我找到了一个简洁的解决方案:)在checkedChanged事件中,我刚写了以下内容:

((GridViewRow)((Control)sender).Parent.Parent).DataItemIndex;