0
我有一個項目列表以顯示在asp.net中 - 每個項目(行)將有3個文本框,以便用戶可以查看和更改該數據(運輸成本,處理成本,價格)。可編輯的數據網格?中繼?
什麼是一個「推薦」的方式來實現這一目標?有了一箇中繼器,我假設我必須在回發中循環表單值,並且使用gridview控件,我必須重寫onrowdatabound和Postback其他方法。
我確定兩者都可以工作,但作爲開發人員,您在這種情況下選擇什麼?
我有一個項目列表以顯示在asp.net中 - 每個項目(行)將有3個文本框,以便用戶可以查看和更改該數據(運輸成本,處理成本,價格)。可編輯的數據網格?中繼?
什麼是一個「推薦」的方式來實現這一目標?有了一箇中繼器,我假設我必須在回發中循環表單值,並且使用gridview控件,我必須重寫onrowdatabound和Postback其他方法。
我確定兩者都可以工作,但作爲開發人員,您在這種情況下選擇什麼?
我已經在過去做的是使用數據綁定的GridView TemplateColumns:
<asp:GridView runat="server" ID="grdRoster" AutoGenerateColumns="false">
<Columns>
<asp:TemplateField HeaderText="First Name">
<ItemTemplate>
<asp:TextBox runat="server" ID="txtFirstName" Columns="10" Text='<%# Eval("RosterFirstName") %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Middle Name">
<ItemTemplate>
<asp:TextBox runat="server" ID="txtMiddleName" Columns="10" Text='<%# Eval("RosterMiddleName") %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Last Name">
<ItemTemplate>
<asp:TextBox runat="server" ID="txtLastName" Columns="10" Text='<%# Eval("RosterLastName") %>' />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
然後,在回發(比方說,一個「保存」按鈕點擊),你可以通過在該行循環GridView並從文本框中提取值:
foreach (GridViewRow row in grdRoster.Rows)
{
if (row.RowType == DataControlRowType.DataRow)
{
string firstName = ((TextBox) row.FindControl("txtRosterFirstName")).Text;
string middleName = ((TextBox) row.FindControl("txtRosterMiddleName")).Text;
string lastName = ((TextBox) row.FindControl("txtRosterLastName")).Text;
}
}
謝謝 - 所以GridView就是您使用的,顯然。我只是想知道。我已經使用了兩種解決方案,但從未滿意。 – 2008-11-08 21:47:37