我正在使用ListView,並且想要在客戶端實現從只讀模式切換到ListView項目的編輯模式。 Inline form editing on client side無法從ListView的ItemTemplate中填充更新參數
我試圖做到這一點的東西,如::
<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的的只讀和編輯一些的,這是在討論 classnames。在LinkButtonSave_Click
中,我從TexBoxName
獲得值,但它始終包含綁定的原始值,而不是在texbox中輸入的編輯值。
- ASP.NET不回發文本框的值,因爲它在ItemTemplate中,或者是其他的東西導致這個問題嗎?
- 我可以用Repeater來完成這個嗎?