带有CalendarExtender的TextBox的Text属性始终为空

时间:2017-04-04 15:26:59

标签: c# asp.net webforms

自从我使用asp.net网络表单已经有很长一段时间了,我需要一点点复习。我正在为旧应用程序做一些mod ...

create table empleado (
    dni char(9) not null,
    contrasena varchar (20) not null,
    nombre varchar (30) not null,
    apellidos varchar (60) not null,
    direccion varchar (80) not null,
    telefono char (9) not null,
    tipo varchar(30) not null,
    fechaIngreso date not null,
    antiguedad as (cast(getdate() - fechaIngreso as int)), 
    salario real not null check (salario > 0),
    primary key (dni)
);

这似乎在UI中有效。如果我在文本框中单击弹出日期选择器,我可以选择一个日期,并在文本框中显示正确的日期。但是,我遇到的麻烦是,在代码隐藏中,<asp:TextBox ID="Text_DatePerformed" runat="server" CssClass="style_default" Font-Size="8pt" Width="75px" ReadOnly="true"> </asp:TextBox> <asp:CalendarExtender ID="CalendarExtender2" TargetControlID="Text_DatePerformed" Format="MM/dd/yyyy" runat="server" /> 属性总是空的。

.Text

1 个答案:

答案 0 :(得分:1)

设置readonly=false,否则ViewState不会保留它。

<asp:TextBox 
    ID="Text_DatePerformed" 
    runat="server" 
    CssClass="style_default" 
    Font-Size="8pt" 
    Width="75px" 
    ReadOnly="false">
</asp:TextBox>

如果您需要,您必须在客户端将其设为只读或在Page_Load或更晚的时间设置:

 Text_DatePerformed.Attributes.Add("readonly", "readonly");