2008-11-08 6 views
0

У меня есть список элементов для показа в asp.net - каждый элемент (строка) будет иметь 3 текстовых поля, чтобы пользователь мог просматривать и изменять эту часть данных (стоимость доставки, стоимость обработки, цена).Редактируемый Datagrid? Repeater?

Что было бы «рекомендуемым» способом для этого? С ретранслятором я предполагаю, что мне пришлось бы перебирать значения формы при обратной передаче, а с помощью элемента управления gridview мне пришлось бы переопределить onrowdatabound и on Postback другой метод.

Я уверен, что оба будут работать, но что ВЫ как разработчик выбираете в этой ситуации?

ответ

1

Что я сделал в прошлом, с привязкой к данным использование 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; 
    } 
} 
+0

Спасибо, поэтому GridView - это то, что вы используете, очевидно. Мне просто интересно. Я использовал оба, но никогда не был доволен решением. – 2008-11-08 21:47:37

Смежные вопросы