文本框值在只读时返回null [英] Textbox value returning null when it is in read only
问题描述
通过在设计器设置下将文本框更改为只读,
我没有从后面的代码中的文本框中获取值。
对于日期选择器,我使用了附加到TextBox控件的ASP.NET AJAX的Calendar扩展器。在文本框中,我不允许用户直接写任何文本,用户只应从日历中选择日期。
为实现这一点,如果我将文本框设为只读,则在服务器端textbox.text返回空白(空)。
< asp:TextBox ID =txtDOBrunat =serverCssClass =cntls txt txt-calenderMaxLength =10
AutoComplete =offplaceholder = dd-MM-yyyyReadOnly =True>< / asp:TextBox>
< asp:FilteredTextBoxExtender ID =txtDOB_FilteredTextBoxExtenderrunat =serverValidChars = - /
FilterMode =ValidCharsFilterType =Custom,Numbers,LowercaseLetters,UppercaseLetters
TargetControlID =txtDOB>
< / asp:FilteredTextBoxExtender>
< asp:CalendarExtender ID =ceDOBrunat =serverFormat =dd-MM-yyyyTargetControlID =txtDOB
PopupButtonID =txtDOBClearTime =true />
< asp:RequiredFieldValidator ID =RequiredFieldValidator3runat =serverControlToValidate =txtFirstNameSetFocusOnError =trueDisplay =NoneErrorMessage =输入出生日期ValidationGroup =vgStud >< / ASP:RequiredFieldValidator的>
< asp:ValidatorCalloutExtender ID =RequiredFieldValidator3_ValidatorCalloutExtender
runat =serverTargetControlID =RequiredFieldValidator3>
< / asp:ValidatorCalloutExtender>
您是禁用它还是将其设置为只读。有两种方法可以做到这一点,其中一个有这个问题。
如果我没有弄错属性启用
将其设为只读并将其灰显。 (并且还返回null)并且只读选项只会使它成为那样。然后必须手动完成它。
(PS:可能反过来,已经有一段时间了)
你好 - 为防止用户在文本框上输入,请尝试以下操作:
在页面上添加图像按钮(在文本框之后):
< asp:ImageButton ID = ibtnDOB runat = server ImageUrl = 〜/ Images / btncalendar.png < span class =code-attribute>高度 = 25 宽度 < span class =code-keyword> = 23 AlternateText = 选择日期 / >
修改您的日历控件以使用图像按钮:
< asp:CalendarExtender ID = ceDOB runat = server 格式 = dd-MM-yyyy TargetControlID = txtDOB
PopupButtonID = ibtnDOB ClearTime = true / >
将文本框更改为:
< pre lang =HTML> < asp:Textbox ID = txtDOB < span class =code-attribute> runat = server cssclass = cntls txt txt-calender maxlength = 10 自动完成 = off 占位符 = dd-MM-yyyy onfocu s = this.blur(); > < / asp:Textbox >
希望有所帮助。
你好,
只需从文本框中删除只读并设置
onfocus = this.blur();
。我的要求与此类似。我累了它通过设置onfocus =this.blur();。它对我有用。
我建议你在文本框中添加工具提示,以便用户完全理解。
希望它能帮到你。
By changing textbox to read-only at the designer setting as below, i am not getting value from the textbox in the code behind. For date picker I have used ASP.NET AJAX 's Calendar extender that is attached to TextBox control. And in the textbox I am not allowing the user to directly write any text, user should only select date from Calendar. For achieving this, if I make textbox read-only then at the server side textbox.text is returning blank(empty).
<asp:TextBox ID="txtDOB" runat="server" CssClass="cntls txt txt-calender" MaxLength="10" AutoComplete="off" placeholder="dd-MM-yyyy" ReadOnly="True"></asp:TextBox> <asp:FilteredTextBoxExtender ID="txtDOB_FilteredTextBoxExtender" runat="server" ValidChars="-/" FilterMode="ValidChars" FilterType="Custom,Numbers,LowercaseLetters,UppercaseLetters" TargetControlID="txtDOB"> </asp:FilteredTextBoxExtender> <asp:CalendarExtender ID="ceDOB" runat="server" Format="dd-MM-yyyy" TargetControlID="txtDOB" PopupButtonID="txtDOB" ClearTime="true" /> <asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ControlToValidate="txtFirstName" SetFocusOnError="true" Display="None" ErrorMessage="Enter Date of Birth" ValidationGroup="vgStud"></asp:RequiredFieldValidator> <asp:ValidatorCalloutExtender ID="RequiredFieldValidator3_ValidatorCalloutExtender" runat="server" TargetControlID="RequiredFieldValidator3"> </asp:ValidatorCalloutExtender>
Do you disable it, or make it read-only. There are two ways to do that and one of them has this issue.
If I'm not mistaken the propertyEnable
makes it read-only and grays it out. (and also returns null) and the option read-only only makes it just that. Graying it out must then be done manually.
(PS: could be vice versa, it's been a while)
Hi - to prevent user input on textboxes try the following:
Add an imagebutton to you page(after the textbox):
<asp:ImageButton ID="ibtnDOB" runat="server" ImageUrl="~/Images/btncalendar.png" Height="25" Width="23" AlternateText="Select A Date" />
Modify your Calendar control to use the image button:
<asp:CalendarExtender ID="ceDOB" runat="server" Format="dd-MM-yyyy" TargetControlID="txtDOB" PopupButtonID="ibtnDOB" ClearTime="true" />
Change your textbox to:
<asp:Textbox ID="txtDOB" runat="server" cssclass="cntls txt txt-calender" maxlength="10" AutoComplete="off" placeholder="dd-MM-yyyy" onfocus="this.blur();"></asp:Textbox>
Hope it helps.
Hello ,
Just Remove the Read Only FromThe Textbox and set
onfocus="this.blur();"
.I have a Requirement similar to this. I Tired it By setting onfocus="this.blur();". It worked for me.
I suggest you to add a ToolTip to textbox for User to get complete Understand.
Hope It Helps You.
这篇关于文本框值在只读时返回null的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!