Я использую ListView и хотел бы реализовать переход из режима только для чтения в режим редактирования для элемента ListView на стороне клиента. Часть этого обсуждается в: Редактирование встроенной формы на стороне клиента
Я пытаюсь сделать что-то вроде:
<asp:ListView ID="ListViewContactNumber" runat="server">
<LayoutTemplate>
<table cellpadding="0" cellspacing="0">
<asp:PlaceHolder ID="itemPlaceholder" runat="server"></asp:PlaceHolder>
</table>
</LayoutTemplate>
<ItemTemplate>
<div class="readonly">
<asp:Label ID="LabelType" runat="server"
Text='<%# Server.HtmlEncode(Eval("Name").ToString()) %>'></asp:Label>
<a href="#" onclick="switchState(this,"edit");return false;">Edit</a>
</div>
<div class="edit">
<asp:TextBox ID="TextBoxName" runat="server"
Text='<%# Eval("Name") %>'
MaxLength="256"
Columns="10"></asp:TextBox>
<asp:LinkButton ID="LinkButtonSave" runat="server"
Text="Save"
OnClick="LinkButtonSave_Click"></asp:LinkButton>
<a href="#" onclick="switchState(this,"readonly");return false;">Cancel</a>
</div>
</ItemTemplate>
</asp:ListView>
switchState
- это функция Javascript, которая просто скрывает / показывает DIV
s с readonly и edit именами классов. В LinkButtonSave_Click
я получаю значение из TexBoxName
, но оно всегда содержит привязанное исходное значение, а не отредактированное значение, которое было введено в текстовое поле.
- Разве ASP.NET не отправляет обратно значение текстового поля, потому что оно находится в ItemTemplate или это что-то еще, что вызывает эту проблему?
- Могу ли я использовать Ретранслятор вместо этого?