foreach-Schleife für das gridview.Zeile[e.rowindex]

Habe ich WLAN ein gridSearchResults_RowUpdating Ereignis für jedesmal, wenn eine update-link geklickt wird. Was ich tun möchte, ist eine Schleife durch die Zeile bei der Veranstaltung rowindex, und fügen Sie das Textfeld mit dem Wert in der Zeile zu einem string-Sammlung. Ich bin mit troubh Zugriff auf die textbox in die Zelle. Wenn dies nicht sinnvoll ist, mein code sollte helfen, die Dinge klarer.

HTML

        <asp:TemplateField HeaderText="Title" SortExpression="Title">
                <ItemTemplate>
                    <asp:Label ID="lblTitle" runat="server" Text='<%# Eval("jobTitle") %>'></asp:Label>
                </ItemTemplate>
                <EditItemTemplate>
                    <asp:TextBox ID="txtTitle" runat="server" Text='<%# Bind("jobTitle") %>' ReadOnly="true"
                        BorderStyle="none" BorderWidth="0px" Width="80">
                    </asp:TextBox>
                </EditItemTemplate>
            </asp:TemplateField>

            <asp:TemplateField HeaderText="First Name" SortExpression="FirstName">
                <ItemTemplate>
                    <asp:Label ID="lblFirstName" runat="server" Text='<%# Eval("FirstName") %>'></asp:Label>
                </ItemTemplate>
                <EditItemTemplate>
                    <asp:TextBox ID="txtFirstName" runat="server" Text='<%# Bind("FirstName") %>' ReadOnly="true"
                        BorderStyle="none" BorderWidth="0px" Width="80">
                    </asp:TextBox>
                </EditItemTemplate>
            </asp:TemplateField>

            <asp:TemplateField HeaderText="Last Name" SortExpression="LastName">
                <ItemTemplate>
                    <asp:Label ID="lblLastName" runat="server" Text='<%# Eval("LastName") %>'></asp:Label>
                </ItemTemplate>
                <EditItemTemplate>
                    <asp:TextBox ID="txtLastName" runat="server" Text='<%# Bind("LastName") %>' ReadOnly="true"
                        BorderStyle="none" BorderWidth="0px" Width="80">
                    </asp:TextBox>
                </EditItemTemplate>
            </asp:TemplateField>

             <asp:TemplateField HeaderText="Email Address" SortExpression="EmailAddress">
                <ItemTemplate>
                    <asp:Label ID="lblEmailAddress" runat="server" Text='<%# Eval("EmailAddress") %>'></asp:Label>
                </ItemTemplate>
                <EditItemTemplate>
                    <asp:TextBox ID="txtEmailAddress" runat="server" Text='<%# Bind("EmailAddress") %>' ReadOnly="true"
                        BorderStyle="none" BorderWidth="0px" Width="80">
                    </asp:TextBox>
                </EditItemTemplate>
            </asp:TemplateField>

            <asp:TemplateField HeaderText="Telephone Number" SortExpression="TelephoneNumber">
                <ItemTemplate>
                    <asp:Label ID="lblTelephoneNumber" runat="server" Text='<%# Eval("TelephoneNumber") %>'></asp:Label>
                </ItemTemplate>
                <EditItemTemplate>
                    <asp:TextBox ID="txtTelephoneNumber" runat="server" Text='<%# Bind("TelephoneNumber") %>' ReadOnly="true"
                        BorderStyle="none" BorderWidth="0px" Width="80">
                    </asp:TextBox>
                </EditItemTemplate>
            </asp:TemplateField>

            <asp:TemplateField HeaderText="Company" SortExpression="Company">
                <ItemTemplate>
                    <asp:Label ID="lblCompany" runat="server" Text='<%# Eval("Company") %>'></asp:Label>
                </ItemTemplate>
                <EditItemTemplate>
                    <asp:TextBox ID="txtCompany" runat="server" Text='<%# Bind("Company") %>' ReadOnly="true"
                        BorderStyle="none" BorderWidth="0px" Width="80">
                    </asp:TextBox>
                </EditItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField>
                <ItemTemplate>
                    <asp:LinkButton ID="lbEditLink" runat="server" CausesValidation="False" CommandName="Edit" Text="Edit"></asp:LinkButton>
                </ItemTemplate>
                <EditItemTemplate>
                <asp:LinkButton ID="lbCancelLink" runat="server" CausesValidation="False" CommandName="Cancel" Text="Cancel"></asp:LinkButton>
                <asp:LinkButton ID="lbUpdateLink" runat="server" CausesValidation="False" CommandName="Update" Text="Update"></asp:LinkButton>
                </EditItemTemplate>

            </asp:TemplateField>

        </Columns>
    </asp:GridView>

C#

protected void gridSearchResults_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
        GridViewRow row = gridSearchResults.Rows[e.RowIndex];

        foreach (gridviewrow c in gridSearchResults.Rows[e.RowIndex])
        {

        }
}

Also kennt jemand einen guten Weg Durchlaufen die Zellen einer gridview-Zeile und packte das textbox-Wert in der gridview-Zeile. Dank

  • gridSearchResults.Rows[e.RowIndex].Cells oder gridSearchResults.Colums. Aber um das Steuerelement in ein TemplateField, die Sie verwenden row.FindControl("controlID").
  • Was Sie bekommen, ist eine Zeile, so dass Sie brauchen, um in einer Schleife die Zellen zu bewegen, um die genaue Zelle, wenn Sie wissen, der index oder besser gridSearchResults.Zeilen[e.RowIndex].FindControl
  • Ich möchte vermeiden, ausdrücklich hard-Codierung jeder FindControl("txtControlName"), wenn möglich.
InformationsquelleAutor nick gowdy | 2012-09-21
Schreibe einen Kommentar