asp.net Panel DefaultButton property not working in Android Browser? - asp.net

clicking go button in android keyboard does not firing Default button. This works in iPhone
<asp:Panel runat="server" id="SubmitPanel" DefaultButton="Submit">
<asp:LinkButton ID="Submit" runat="server" OnClick="SubmitButton_Click">
Submit
</asp:LinkButton>
</asp:Panel>

Only Button and ImageButton controls are supported. The LinkButton is not supported.

Make sure that the textbox or text input object that has focus (this is required for your android keyboard to be active) is wrapped inside this Submit Panel.

Try this
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
btnSubmit_Click(sender, e);
}
}

Related

Asp.net Validations and controls

how to disable the (Required attribute) in Text box in ASP.NET web forms
I want to change the web form page to another one when I click on the Login button but I cant!
please help!
For Disable Validation :
<asp:TextBox id="txt" runat="server" causesvalidation="false" /> // or reqiured=false
For Redirect :
protected void btnConfirm_Click(object sender, EventArgs e)
{
Response.Redirect("YourPage.aspx");
//or
Server.Transfer("YourPage.aspx");
}

implemented cross post back using enter in a textbox but unable to do it after button is hidden

implemented cross post back using enter in a textbox but unable to do it after visibility of button is set to false.
Javascript
function EnterEvent(e)
{
if (e.keyCode == 13) {
__doPostBack('<%=Button2%>', "");
}
CS File
protected void Button2_Click(object sender, EventArgs e)
{
}
Put your button in a hidden div rather than setting Visibility:
<div style="display:none;">
<asp:Button id="btn" runat="server"/>
</div>
When you set Visible="false" on the server-side the control doesn't get rendered and doesn't make it into the client-side DOM, and thus can't be used by javascript.

Prevent postback on server-side property change

I have a simple CalendarExtender (from AjaxControlToolkit) attached to a textbox.
<asp:TextBox ID="StartDateText" runat="server" MaxLength="10" Width="70px" AutoPostBack="True" OnTextChanged="StartDateText_TextChanged" />
<asp:ImageButton ID="ImageCalendarStartDate" runat="server" ImageUrl="~/images/Calendar_scheduleHS.png" AlternateText="Click to show calendar" />
<asp:CalendarExtender ID="StartDateCalendarExtender" runat="server" TargetControlID="StartDateText" PopupButtonID="ImageCalendarStartDate" />
In order to control user input, I have the AutoPostBack set to True on the textbox, as well as a function on the TextChanged event (although TextChanged isn't the issue here).
In Page_Load, I have:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
StartDateCalendarExtender.SelectedDate = DateTime.Now.AddDays(-1);
}
}
On opening the page, Page_Load sets the date, but the AutoPostBack triggers a postback right after Page_Load, calling it again with IsPostBack set to true.
Is there a server-side way to prevent this postback?
I tried setting the AutoPostBack property to false, changing the SelectedDate, and setting it back to true, but it keeps firing a postback.
The reason is that because you give the date on the extender, then the extender add it to the text box, then the text box trigger the post back.
How about try to set the text at the TextBox at the first place.
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
// remove that
// StartDateCalendarExtender.SelectedDate = DateTime.Now;
// and direct set it to the text box.
StartDateText.Text = DateTime.Now;
}
}
Maybe you need to format the DateTime the way you want it.

how to perform Click event in Gridview

I have taken a Gridview and in Gridview I have taken an Image Button.
Now I want to perform click event on that Image Button.
How can I do that??
Tell me something about click events using Gridview.
You need to bind RowCommand event of gridView, You can not bind click event to button as you do with button not in GridView.
GridView html
<asp:GridView id="GridView1" Runat="server" OnRowCommand="GridViewCommandEventHandler" />
Event handler
void GridView1_RowCommand(Object sender, GridViewCommandEventArgs e)
{
}
You can directly create click event on that Image Button by double click on Image Button
Or Manually you can add
<asp:ImageButton id="ImageButton1" Runat="server" OnClick="ImageButton1_Click"/>
and in code behind file you can use
void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
// you code here...
}

Page Validation, Submit Button is not part of the usercontrol

I have some fields to be validated on the server (CustomValidator) which is in a separate user control and my Submit button is in the page not in the user control.
What I have done is, I placed all my Validation Methods in the code behind of my usercontrol (ascx.cs) and the page validation is in the code behind of the page (aspx.cs). I put them in the same ValidationGroupName (fields and Submit button). usercontrol (ascx) is a child of my page (aspx). I have already placed CauseValidation="true" to my Button and UseSubmitBehavior="true". The problem is it does not validate. What could be the problem in this?
Note: I cannot put the the Button to be part of the usercontrol.
Edit:
in my aspx page, click event of the button has this.Page.Validate(ValidationGroupName) and all of my validators are on the fields on a separate control (ascx) which is a child of the aspx page.
protected void Button1_Command(object sender, CommandEventArgs e)
{
if(e.CommandName.Equals("Validate", StringComparison.Ordinal))
{
this.Page.Validate("MyValidationGroup");
if(this.Page.IsValid)
{
// I'll change my View here.
}
}
}
My Button looks like
<asp:Button ID="Button1" runat="server" UseSubmitBehavior="true" CommandName="Validate"
Text="Submit" OnCommand="Button1_Command" CausesValidation="true" ValidationGroup="MyValidationGroup" />
The above snippet is located in my aspx page.
I've tried to put the same button on the ascx page, it works fine. My thought is since the ascx page is under the aspx page. When the button event on aspx page is fired (Button1), the rest of the event in ascx page is not fired. I've tried to put breakpoints on the button event and validator events, if the button of the page (aspx) is the one I click, it will not stop on my validator events, if the button on the control (ascx) I click it will stop to the validator events. What could be the remedy for this?
Have you tried calling ucName.Page.Validate(); in the button click event?
(where ucName is whatever you called the user control in the markup)
Edit: OK this simple code below works fine for me, the only way I broke the validation was setting my user control to visible = false; Can you post more of your code?
Parent page markup:
<uc:ucTest id="ucName" runat="server">
<asp:Button ID="btnTest" runat="server" Text="Test validation" onclick="btnTest_Click" />
code behind:
protected void btnTest_Click(object sender, EventArgs e)
{
if (Page.IsValid)
{
Response.Write("Hi!");
}
}
user control markup:
<asp:TextBox ID="txtDummy" runat="server"></asp:TextBox>
<asp:CustomValidator ID="CustomValidator1" runat="server"
ErrorMessage="*"
ControlToValidate="txtDummy"
onservervalidate="CustomValidator1_ServerValidate">
</asp:CustomValidator>
code behind:
protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)
{
if (txtDummy.Text.Length > 0)
{
args.IsValid = false;
}
}

Resources