Сбиндить Repeater

maxterbear

У меня в Repeater стоят TextBox, можно ли его как-то просто сбиндить с базой, то есть чтобы в базу записались измененные значения? Судя по тому что в Репитере нет EditItemTemplate скорее всего прийдется как-то выкручиваться и перебирать элементы вручную?
11 ответов

maxterbear

репитер для отображениязаюзай грибвью


maxterbear

Мне надо сделать полноценную форму а не просто грид (


maxterbear

а чем меряется полноценность формы? литрами или килограммами?


maxterbear

maxterbear, FormView


maxterbear

maxterbear,FormView
не подходит ( форм фью показывает и позволяет сбиндить только один рекорд за раз (


maxterbear

мои уникальные экстрасенсорные способности подсказывают мне что тебе надо листвью


maxterbear

Спасибо! ListView - именно то, что мне нужно!


maxterbear

Блин во всех примерах кнопка сохранения привязана к каждому Item, примерно так
<ItemTemplate>
<div>
<strong>Name: </strong><%# Eval("name") %>


<strong>Age: </strong><%# Eval("age") %>


<asp:LinkButton ID="lnkEdit" runat="server" Text="Edit" CommandName="Edit" /> | 
<asp:LinkButton ID="lnkDel" runat="server" Text="Delete"
CommandName="Delete" OnClientClick="return confirm('Delete this entry?')" />
</div>
</ItemTemplate>
Можно ли сохранить все записи, используя одну кнопку в конце формы? Кто-то встречал такой пример?


maxterbear

Даже в таком случае не сохраняются записи, ради примера сохраняем только первый рекорд
<asp:SqlDataSource
 id="ds_News"
 runat="server"
 DataSourceMode="DataReader"
 ConnectionString="<%$ ConnectionStrings:polanieConnectionString%>"
 SelectCommand="SELECT newstitle_ua, newsid FROM News"
 UpdateCommand="UPDATE News SET newstitle=@newstitle WHERE newsid=@newsid">
 <UpdateParameters>
 <asp:Parameter Name="newsid" Type="String" />
 <asp:Parameter Name="newstitle" Type="String" />
 </UpdateParameters>
 </asp:SqlDataSource>
 

 
 
 
 
 <asp:ListView runat="server" ID="ListView1" 
 DataSourceID="ds_News" EditIndex="0">
 <LayoutTemplate>
 <table runat="server" id="table1" >
 <tr runat="server" id="itemPlaceholder" ></tr>
 </table>
 </LayoutTemplate>
 <EditItemTemplate>
 <tr id="Tr1" runat="server">
 <td id="Td1" runat="server">
 <%-- Data-bound content. --%>
 <asp:TextBox ID="NameLabel" runat="server" 
 Text='<%#Bind("newstitle") %>' />
 <asp:TextBox ID="TextBox2" runat="server" 
 Text='<%#Bind("newsid") %>' />
 </td>
 </tr>
 </EditItemTemplate>
 <ItemTemplate>
 <tr id="Tr1" runat="server">
 <td id="Td1" runat="server">
 <%-- Data-bound content. --%>
 <asp:Label ID="NameLabel" runat="server" 
 Text='<%#Eval("newstitle") %>' />
 </td>
 </tr>
 </ItemTemplate>
</asp:ListView>
protected void button_Save_Click(object sender, EventArgs e)
 {
 
 ListView1.UpdateItem(0, false);
 
 }


maxterbear

Можно ли сохранить все записи
нельзя


maxterbear

нельзя
Не стал бы так категорично утверждать. Можно, например, собрать скриптом значения из всех полей в массив и отправить на сервер аякс-запросом.