繁体   English   中英

保存隐藏字段中的值

[英]Saving values from hidden fields

我有一个供两个不同用户使用的页面。 如果登录的用户是“ user1”,则显示所有8个字段,如果其“ user2”,则显示8个字段中的7个。 这是我用来从user2隐藏一个字段的html代码。

 <%If User1 Then%>   
   <tr>
      <td>
         <cc1:Label ID="lblTextBox1" runat="server" />
         <cc1:TextBoxId ID="txtTextBox1" runat="server" LabelId="lblTextBox1" Columns="20" />
     </td>    
  </tr>
<%End If%>

现在,当加载aspx.vb页面时,它将所有这些控件一起填充,但是由于上面的html代码,该字段仍处于隐藏状态。 单击页面上的保存按钮时,保存方法不会尝试区分user1和user2,而是从所有控件中提取值并保存。

我的问题是,当user2“保存”时,“隐藏”文本框的值变为null,尽管在填充其他控件时,也填充了该字段。 值在某种程度上变成了“保存”

为什么会这样呢? 最好的解决方案/解决方法是什么?

您是否考虑过在代码中设置可见性,而不是使用渲染块?

<asp:Panel id="pnlForUser2" runat="server">
<tr>
    <td>
        <cc1:Label ID="lblTextBox1" runat="server" />
        <cc1:TextBoxId ID="txtTextBox1" runat="server" LabelId="lblTextBox1" Columns="20" />
    </td>    
</tr>
</asp:Panel>

并在后面的代码中:

if(Page.User.Identity.Name.Equals("user2"))
    pnlForUser2.Visible = true;

或使用速记运营商??

一种快速而肮脏的解决方法是将该控件的值显式保存到ViewState或Session中,然后手动重新填充它。 该问题可能源于页面上所有经典的ASP样式代码块。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM