Frage

habe ich ein Datagrid, und es gibt eine Checkbox, die Vorlage in jeder Zeile ist. Angenommen, ich bin in CheckedChanged Fall eines des Kontrollkästchen. Gibt es eine Möglichkeit, in welcher Zeile des Datagrid kann sagen, dass das Kontrollkästchen ist in?

War es hilfreich?

Lösung 3

gefunden Ok ich eine saubere Lösung :) Im CheckedChanged Ereignis Ich schrieb folgendes:

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

Andere Tipps

Sie können die Parent-Eigenschaft durch, wenn Sie so etwas wie chk.Parent.Parent zu tun haben, und so weiter. Ich weiß nicht, wie viele Eltern Verweise auf die aktuelle Zeile ... ist

HTH.

Versuchen Sie etwas wie folgt aus:

<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++;
            }
        }
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top