Textbox.text返回空白

时间:2013-06-25 17:16:20

标签: asp.net vb.net

我有一个文本框(txtShipmentDate),其中填充了从.aspx文件中的弹出日历中选择的值。

<tr>
    <td align="right" valign="middle" width="125">
       Shipment Date:
    </td>                                       
    <td align="left" valign="middle">
       <asp:TextBox Runat="server" ReadOnly="true" Width="75" 
           ID="txtShipmentDate" CssClass="textbox"></asp:TextBox>
       <a title="Select Ship Date" onclick="if(self.gfPop)gfPop.fPopCalendar(document.forms[0].txtShipmentDate);return false;"
href="javascript:void(0)">
       <IMG class="PopcalTrigger" height="19" alt="" src="/TOrders/calendarxp/themes/xp/calbtn.gif" width="34" align="absMiddle" border="0"></a>
    </td>
</tr>

正确填充文本框。

但是当我单击“提交”按钮时尝试访问文本框中的值时,使用

     If txtShipmentDate.Text.Length > 0 Then oShippingDate = Convert.ToDateTime(txtShipmentDate.Text)

texbox中的值为空。在提交之前没有其他任何事情可以解决。所有其他文本框都保留其值。

1 个答案:

答案 0 :(得分:1)

由于安全预防措施,ReadOnly字段不会在回发时保留其值。如果您需要阻止用户输入此字段并仍然返回值 - 请不要设置文本框的ReadOnly属性。而是通过CSS给它一个ReadOnly外观,然后通过

之类的东西阻止用户输入
txtShipmentDate.Attributes("onclick") = "this.blur();"

(你可能也希望处理'onselect'和'onpaste')。这样就防止了用户输入,为用户提供了完整的ReadOnly字段外观,并且仍然返回值。