我正在尝试将listview设计为仅允许基于同一行的另一列中的值来编辑行中的某些列。我花了几个小时尝试很多东西并在网上进行研究,但无济于事。我尝试在EditTemplate中添加一个条件,并尝试使用各种listviews事件,如ItemEditing和ItemDataBound,但没有成功。任何人都可以指出我正确的方向,我需要做什么,在哪里?
答案 0 :(得分:1)
我过去通过隐藏文本框控件并显示我不想编辑的项目的标签控件来完成此操作。
此处Item2仅在Item1 =“1”时可编辑:
<EditItemTemplate>
<tr>
<td>
<asp:LinkButton runat="server" ID="lnkUpdate" Text="Update" CommandName="Update" />
<asp:LinkButton runat="server" ID="LinkButton1" Text="Cancel" CommandName="Cancel" />
</td>
<td>
<asp:TextBox runat="server" id="Item1_txt" Text='<%# Eval("Item1") %>' />
</td>
<td>
<asp:TextBox runat="server" id="Item2_txt" Text='<%# Eval("Item2") %>' Visible='<%# Eval("Item1") == "1" ? true : false %>' />
<asp:Label runat="server" id="Item2_lbl" Text='<%# Eval("Item2") %>' Visible='<%# Eval("Item1") != "1" ? true : false %>' />
</td>
</tr>
</EditItemTemplate>