Какой индекс строки имеет флажок шаблона в сетке данных? - PullRequest
0 голосов
/ 21 сентября 2010

У меня есть сетка данных, и есть флажок, который является шаблоном в каждой строке. Предположим, я нахожусь в событии CheckedChanged одного из флажков. Можно ли как-то определить, в какой строке сетки данных установлен этот флажок?

Ответы [ 3 ]

1 голос
/ 21 сентября 2010

Вы можете через свойство Parent, хотя вы должны сделать что-то вроде chk.Parent.Parent и так далее. Я не знаю, сколько родительских ссылок в текущей строке ...

НТН.

0 голосов
/ 21 сентября 2010

Хорошо, я нашел правильное решение :) В событии checkedChanged я просто написал следующее:

((GridViewRow)((Control)sender).Parent.Parent).DataItemIndex;
0 голосов
/ 21 сентября 2010

попробуйте что-то вроде этого:

<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>

в .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++;
            }
        }
...