asp input field type date - html

For simple html input we use:
<input type="date" placeholder="From" />
How can we use this method for asp field:
<asp:TextBox ID="from_date" runat="server" placeholder="From"></asp:TextBox>
when user clicks the field, calendar should appear.

Question still unanswered:
Here is even more detail to back up my answer:
From Microsoft: https://support.microsoft.com/en-us/kb/2468871
"New syntax lets you define a TextBox control that is HTML5 compatible. For example, the following code defines a TextBox control that is HTML5 compatible":
<asp:TextBox runat="server" type="some-HTML5-type" />
-
Original:
I use asp.net and you can just use it like normal. An asp.net textbox ends up as a normal input element once processed by the server.
If you are using 4.0 or above you can just do :
<asp:TextBox ID="from_date" runat="server" placeholder="From" type="date"></asp:TextBox>
If you try this and it does not work, it is probably the browser you are using, type="date" is not supported by any IE, or any Firefox browsers, chrome is one of the only browsers that support type="date" right now.
See can i use for browser support: http://caniuse.com/#feat=input-datetime
I recommend that you find another option if you need browser support.

You can also use AJAX Calender Extender
<asp:TextBox ID="from_date" runat="server" />
<ajaxToolkit:CalendarExtender ID="CalendarExtender1" runat="server"
TargetControlID="from_date" PopupButtonID="from_date">
</ajaxToolkit:CalendarExtender>

Related

ASP TextBox loses ViewState

I have a simple TextBox:
<asp:TextBox runat="server" ID="tbText" MaxLength="3" Width="80" type="number">
</asp:TextBox>
When I add type="number" the control loses its content after a post-back. I know there is no native support for this but it's a comfortable way to make sure only numbers can be entered.
How can I make the value remain in the TextBox and add the attribute type="number"?
In your Page_Load() method you can maintain the value and add the attribute in IsPostBack check:
If(IsPostBack)
{
tbText.Attributes.Add("type", "number");
tbText.Attributes["value"]= tbText.Text;
}
Explanation:
IsPostBack returns true which means a post-back is happened
tbText.Attributes.Add adds attribute type="number" in textbox
tbText.Attributes["value"] used to set the entered value in textbox
Use TextMode
<asp:TextBox ID="tbText" runat="server" TextMode="Number" />

Is there a way to prevent Enabled="false" / disabled="disabled" being changed in the browser via Inspect Element?

If I have a selection of options on a page and one of them is disabled via the code behind, it is rendered in the browser as:
aspx
<asp:RadioButton ID="myRadioButton" runat="server" OnCheckedChanged="myMethod_Click" AutoPostBack="true" Enabled="false" />
html
<input id="myRadioButton" type="radio" name="myRadioButton" value="1" disabled="disabled">
However a user who knows what they're doing can re-enable the control via the browsers Inspect Element functionality, and exploit the option.
How can avoid this while still displaying the control?
If you can use JavaScript. You can set an interval to check every say fifty miliseconds if it's not disabled and if it's not you can change it back to disabled. You will have to use JavaScript for this.
window.setInterval(function(){
if(document.getElementById("myRadioButton").getAttribute("disabled") !== "disabled"){
document.getElementById("myRadioButton").setAttribute("disabled", "disabled");
}
}, 50);

Adding bootstrap elements to asp textbox

I'm fairly new in asp.net, and I am more proficient at building html/php websites.I am trying to add twitter bootstrap to my textboxes. My current textbox shows:
<asp:TextBox ID="UserName" runat="server" Width="250px" TabIndex="1"></asp:TextBox>
And the input that I designed using html is:
<input type="text" class="form-control input-lg" placeholder="Username">
How do I put all the classes of my textbox to my asp textbox, and would it take effect in a similar way html elements work?
You can put these classes in asp textbox using CssClass as follows
<asp:TextBox ID="UserName" runat="server" CssClass="form-control input-lg"
Width="250px" TabIndex="1"></asp:TextBox>
Basically when you create a control asp control it render as a html control on the browser.
So in the browser you will see the same.
There may be difference in the id and the name of the control. As they are generated depending on the controls like master page and user controls.
Though you have different ClientIdMode in asp.net to overcome this issue.
MSDN for the same is http://msdn.microsoft.com/en-us/library/system.web.ui.clientidmode.aspx
<asp:TextBox ID="UserName" runat="server" CssClass="form-control input-lg"
Width="250px" TabIndex="1" placeholder="Username"></asp:TextBox>

asp Textbox & HTML Input - Values always empty

I have an asp Textbox for a username and a HTML input for a password, these are both server controls and are contained in the master page (in a modal popup).
<input runat="server" Class="login-input" id="txtPassword" placeholder="Password" type="password"
<asp:Textbox style="float:left; margin-right:25px;" runat="server" id="txtUsername" Class="login-input" Placeholder="Username" name="txtUserName"/>
I also have a login button hooked up to a handler in the code behind. However the value of the 2 input boxes is always empty.
I had to include UseSubmitBehavior="False" on my button as this was the only way i could get my click event to
<asp:Button UseSubmitBehavior="False" runat="server" Class="login-button" ID="btnLogin" Text="Login" />
Not sure what's going on here, i have checked my code and definitely only have 1 form tag, which i heard can cause this.
It turned out that at runtime my modal was not contained within the tags.
Therefore i had to use
$('#divname').parent().appendTo($("form:first"));
within my script to move the elements back within the form tags.
(There were 2 modal elements outside) I found this out by using f12 dev tools/firebug.

Is their any asp net server control which could render <label> tag?

I want to render a <label> tag. But want to set some of it's properties while it's rendering like for and text value.
Actually my real problem is I want to associate a label with a radio button and this is the code so far I have:
<asp:RadioButton ID="Option4" GroupName="A" runat="server" />
<label for='<%=Option4.ClientID %>' id="lblOption4" runat="server">4</label>
But the problem with this code is that it is not working and rendering the for attibute's value as it is i.e. <%=Option4.ClientID %>. :-(
Is their any asp net server control which would render tag?
I don't want to set the Text property of the radio button due to some CSS limitations so plz do not give answers like why don't you set the Text property of the radio button.
if this is .NET 2.0 or later, then use the ASP.NET LABEL control.
<asp:RadioButton ID="Option4" GroupName="A" runat="server" />
<asp:Label AssociatedControlId="Option4" Text="4" runat="server" />
If this is to ultimately handle accessiblity issues you could try the following tutorial: Creating an Accessible LABEL control in ASP.NET