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