0

“我有一个 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> &nbsp;</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 是我只读的,希望它成为在每次插入时保持相同值的框。

4

2 回答 2

1

为了使 TextBox 只读,您需要设置 ReadOnly=true

例子:

<asp:TextBox ReadOnly="True"...
于 2012-08-28T22:42:42.853 回答
0

我终于想出了如何解决我的问题。我的解决方法是在页面中添加一个隐藏字段。

<asp:HiddenField ID="h_tc_t_id_holder" Value="0" runat="server" />

在后面的代码中,我将值设置为隐藏字段。

h_tc_t_id_holder.Value = App_id;

在列表视图中我添加

OnPreRender="ListView1_OnPreRender"

在代码隐藏中

protected void ListView1_OnPreRender(object sender, EventArgs e)
{   
    ListView1.DataBind();
    ((TextBox)ListView1.InsertItem.FindControl("tc_t_idTextBox")).Text = h_tc_t_id_holder.Value;
}
于 2012-08-29T18:19:13.277 回答