“我有一个ListView,其中包含要编辑的项目和插入内容。
插入项目模板有几个文本框但是我想让其中一个文本框只读,并在其中保留一个值,该值将在每次插入后保留。
<InsertItemTemplate>
<tr style="">
<td>
<asp:Button ID="InsertButton" runat="server" CommandName="Insert" Text="Insert" />
<asp:Button ID="CancelButton" runat="server" CommandName="Cancel" Text="Clear" />
</td>
<td>
<asp:TextBox ID="tc_dateTextBox" runat="server" Text='<%# Bind("tc_date") %>' />
</td>
<td>
<asp:TextBox ID="tc_costTextBox" runat="server" Text='<%# Bind("tc_cost") %>' />
</td>
<td>
<asp:TextBox ID="tc_typeTextBox" runat="server" Text='<%# Bind("tc_type") %>' />
</td>
<td>
<asp:TextBox ID="tc_commentTextBox" runat="server" Text='<%# Bind("tc_comment") %>' />
</td>
<td> </td>
<td>
<asp:TextBox ID="tc_t_idTextBox" runat="server" Text='<%# Bind("tc_t_id") %>' Width="15" ReadOnly="true" />
</td>
</tr>
</InsertItemTemplate>
tc_t_idTextBox是我只读的那个,并且希望它是在每个插入上保持相同值的框。
答案 0 :(得分:1)
为了使TextBox只读,您需要设置ReadOnly = true
示例:
<asp:TextBox ReadOnly="True"...
答案 1 :(得分:0)
我终于想出了如何解决我的问题。 我的工作是在页面中添加一个隐藏字段。
<asp:HiddenField ID="h_tc_t_id_holder" Value="0" runat="server" />
在后面的代码中我将值设置为隐藏字段。
h_tc_t_id_holder.Value = App_id;
在列表视图中添加
OnPreRender="ListView1_OnPreRender"
在codebehind中
protected void ListView1_OnPreRender(object sender, EventArgs e)
{
ListView1.DataBind();
((TextBox)ListView1.InsertItem.FindControl("tc_t_idTextBox")).Text = h_tc_t_id_holder.Value;
}