我正在使用ListView,并希望在客户端实现从只读模式切换到ListView项目的编辑模式。其中一些讨论在:Inline form editing on client side
我试图通过以下方式来做到这一点:
<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函数,只使用 readonly 和 edit 类名隐藏/显示DIV
s。在LinkButtonSave_Click
中,我从TexBoxName
获取值,但它始终包含绑定的原始值,而不是在texbox中输入的已编辑值。
答案 0 :(得分:1)
使用javascript更改状态时,必须使用ajax更新数据::
答案 1 :(得分:0)
事实证明,ListView根本不是问题的根源。我在Page_Load上重新数据绑定而不检查它是否是回发。