C# - Button Onclick Event (in Codebehind) Doesn't Get Triggered In MVC 2
May 4, 2010
I had an MVC 1.0 web application that was in VS 2008; I just upgraded the project to VS 2010 which automatically upgraded MVC to 2.0. I have a bunch of viewpages have codebehind files that were manually added. The project worked fine before the upgrade, but now the onclick even't don't get triggered. I.e. I have an asp:button with an onclick event that points to a method in the codebehind. When you click the button, the onclick event doesn't get triggered. In fact, when you look at the Page variable, IsPostBack is false.
This is really bizarre and I'm wondering if anyone know what happened and how to fix it. I'm thinking it has something to do with the changes in MVC 2.0; but I'm not sure. (deleting the codebehinds and moving that to the controller is not really an option since there is so many pages, moving back to vs 2008 is a last resort as I want to make use of some of the VS 2010 features like performance testing.)
View 2 Replies
Similar Messages:
Nov 28, 2010
The following code is my ASP.NET page :
<MdsMenu:MenuItem Text="Button" Href="#">
<asp:Button ID="Button1" runat="server" Text="Button 01" OnClick="Button_Click" />
<asp:Button ID="Button2" runat="server" Text="Button 02" OnClick="Button_Click" />
</MdsMenu:MenuItem>
I don't know why Button_Click event doesn't fire!
protected void Button_Click(object sender, EventArgs e)
{
Button senderButton = sender as Button;
Label1.Text = senderButton.ID.ToString();
}
MdsMenu:MenuItem is my custom WebControl. If I insert a Button control out of MdsMenu:MenuItem tag it works well but if I inserted it within MdsMenu:MenuItem tag it doesn't fire the concerned method. What's wrong with my code?
Edit:
Menu.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Security.Permissions;
using System.Collections;
using System.ComponentModel.Design;
using System.Drawing.Design;
using System.Web.UI.HtmlControls;
using System.IO;
namespace MenuServerControl
{
[AspNetHostingPermission(SecurityAction.Demand, Level = AspNetHostingPermissionLevel.Minimal)]
[AspNetHostingPermission(SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
[DefaultProperty("MenuItems")]
[ParseChildren(true, "MenuItems")]
[ToolboxData("<{0}:Menu runat="server"> </{0}:Menu>")]
public class Menu : WebControl
{
#region Fields
private List<MenuItem> _MenuItems;
string _Direction
{
get
{
string direction = "";
switch (this.Direction)
{
case Directions.LeftToRight:
direction = "direction:ltr;";
break;
case Directions.RightToLeft:
direction = "direction:rtl;";
break;
default:
direction = "direction:rtl;";
break;
}
return direction;
}
}
string _AnimationDelay
{
get
{
if (AnimationDelay == null)
AnimationDelay = 1000;
return AnimationDelay.ToString().ToLower();
}
}
string _AnimationType
{
get
{
switch (this.AnimationType)
{
case AnimationType.Opacity_Height:
return "animation:{opacity:'show',height:'show'}";
case AnimationType.Opacity_Width:
return "animation:{opacity:'show',width:'show'}";
case AnimationType.Opacity:
return "animation:{opacity:'show'}";
case AnimationType.Height:
return "animation:{height:'show'}";
case AnimationType.Width:
return "animation:{width:'show'}";
case AnimationType.Height_Toggle:
return "animation: {height: 'toggle'}";
case AnimationType.Width_Toggle:
return "animation: {width: 'toggle'}";
default:
return "animation:{opacity:'show',height:'show'}";
}
}
}
string _AnimationSpeed
{
get
{
switch (this.AnimationSpeed)
{
case AnimationSpeed.Fast:
return "speed:'fast'";
case AnimationSpeed.Normal:
return "speed:'normal'";
case AnimationSpeed.Slow:
return "speed:'slow'";
default:
return "speed:'fast'";
}
}
}
string FloatStyle
{
get
{
if (Direction == Directions.RightToLeft)
return "float:right;";
else return "";
}
}
string _Main_ul_CssClass = "";
#endregion
#region Properties
public string Main_ul_CssClass
{
get
{
if (string.IsNullOrEmpty(_Main_ul_CssClass)) return "";
_Main_ul_CssClass = "class=" + _Main_ul_CssClass;
return _Main_ul_CssClass;
}
set
{
_Main_ul_CssClass = value.Trim();
}
}
public Directions Direction { get; set; }
public int? AnimationDelay { get; set; }
public AnimationType AnimationType { get; set; }
public AnimationSpeed AnimationSpeed { get; set; }
public bool DropShadow { get; set; }
public bool AutoArrows { get; set; }
[Category("Behavior")]
[Description("The menu collection")]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
[PersistenceMode(PersistenceMode.InnerDefaultProperty)]
public List<MenuItem> MenuItems
{
get
{
if (_MenuItems == null)
_MenuItems = new List<MenuItem>();
return _MenuItems;
}
}
public VerOrHor VerticalOrHorizontal { get; set; }
#endregion
#region Methods
public Menu()
{
DropShadow = true;
AutoArrows = true;
}
public override void RenderBeginTag(HtmlTextWriter writer)
{
writer.Write("<div id="" + this.ID + "" style="" + _Direction + " " + FloatStyle + "">");
}
public override void RenderEndTag(HtmlTextWriter writer)
{
writer.Write("</div>");
}
protected override void OnPreRender(EventArgs e)
{
base.OnPreRender(e);
#region Adding Script & link Tags
HtmlGenericControl jquery = new HtmlGenericControl("script");
jquery.Attributes.Add("type", "text/javascript");
jquery.Attributes.Add("src", Page.ClientScript.GetWebResourceUrl(typeof(MenuServerControl.Menu), "MenuServerControl.JavaScriptFiles.jquery_1_4_3.js"));
jquery.EnableViewState = false;
Page.Header.Controls.Add(jquery);
HtmlGenericControl hoverIntent = new HtmlGenericControl("script");
hoverIntent.Attributes.Add("type", "text/javascript");
hoverIntent.Attributes.Add("src", Page.ClientScript.GetWebResourceUrl(typeof(Menu), "MenuServerControl.JavaScriptFiles.hoverIntent.js"));
hoverIntent.EnableViewState = false;
Page.Header.Controls.Add(hoverIntent);
HtmlGenericControl jquery_bgiframe_min = new HtmlGenericControl("script");
jquery_bgiframe_min.Attributes.Add("type", "text/javascript");
jquery_bgiframe_min.Attributes.Add("src", Page.ClientScript.GetWebResourceUrl(typeof(Menu), "MenuServerControl.JavaScriptFiles.jquery_bgiframe_min.js"));
jquery_bgiframe_min.EnableViewState = false;
Page.Header.Controls.Add(jquery_bgiframe_min);
HtmlGenericControl superfish = new HtmlGenericControl("script");
superfish.Attributes.Add("type", "text/javascript");
superfish.Attributes.Add("src", Page.ClientScript.GetWebResourceUrl(typeof(Menu), "MenuServerControl.JavaScriptFiles.superfish.js"));
superfish.EnableViewState = false;
Page.Header.Controls.Add(superfish);
HtmlGenericControl supersubs = new HtmlGenericControl("script");
supersubs.Attributes.Add("type", "text/javascript");
supersubs.Attributes.Add("src", Page.ClientScript.GetWebResourceUrl(typeof(Menu), "MenuServerControl.JavaScriptFiles.supersubs.js"));
supersubs.EnableViewState = false;
Page.Header.Controls.Add(supersubs);
if (Direction == Directions.LeftToRight)
{
HtmlGenericControl csslink = new HtmlGenericControl("link");
csslink.Attributes.Add("href", Page.ClientScript.GetWebResourceUrl
(typeof(Menu), "MenuServerControl.CSS.superfish.css"));
csslink.ID = "NavigationMenu";
csslink.Attributes.Add("type", "text/css");
csslink.Attributes.Add("rel", "stylesheet");
csslink.EnableViewState = false;
Page.Header.Controls.Add(csslink);
}
else
{
HtmlGenericControl csslink = new HtmlGenericControl("link");
csslink.Attributes.Add("href", Page.ClientScript.GetWebResourceUrl
(typeof(Menu), "MenuServerControl.CSS.RightToLeft superfish.css"));
csslink.ID = "NavigationMenu";
csslink.Attributes.Add("type", "text/css");
csslink.Attributes.Add("rel", "stylesheet");
csslink.EnableViewState = false;
Page.Header.Controls.Add(csslink);
}
if (this.VerticalOrHorizontal == VerOrHor.Vertical && this.Direction == Directions.RightToLeft)
{
HtmlGenericControl csslink01 = new HtmlGenericControl("link");
csslink01.Attributes.Add("href", Page.ClientScript.GetWebResourceUrl
(typeof(Menu), "MenuServerControl.CSS.RightToLeft superfish-vertical.css"));
csslink01.Attributes.Add("type", "text/css");
csslink01.Attributes.Add("rel", "stylesheet");
csslink01.EnableViewState = false;
Page.Header.Controls.Add(csslink01);
}
else if (this.VerticalOrHorizontal == VerOrHor.Vertical)
{
HtmlGenericControl csslink01 = new HtmlGenericControl("link");
csslink01.Attributes.Add("href", Page.ClientScript.GetWebResourceUrl
(typeof(Menu), "MenuServerControl.CSS.superfish-vertical.css"));
csslink01.Attributes.Add("type", "text/css");
csslink01.Attributes.Add("rel", "stylesheet");
csslink01.EnableViewState = false;
Page.Header.Controls.Add(csslink01);
}
#endregion
}
protected override void RenderContents(HtmlTextWriter output)
{
output.Write(CreateMenuHtmlTags());
}
StringBuilder CreateMenuHtmlTags()
{
if (this._MenuItems == null)
throw new Exception("تگ های مربوط به منو را کامل کنید");
StringBuilder Html = new StringBuilder("");
#region Add <Script>
if (String.IsNullOrEmpty(Main_ul_CssClass))
Html.Append("<script>$(document).ready(function() { $("ul.sf-menu").superfish({pathLevels: 1,");
else
Html.Append("<script>$(document).ready(function() { $("ul." + Main_ul_CssClass + "").superfish({ pathLevels: 1,");
Html.Append("delay:" + _AnimationDelay + ",");
Html.Append(_AnimationType + ",");
Html.Append(_AnimationSpeed + ",");
Html.Append("dropShadows: " + DropShadow.ToString().ToLower() + ",");
Html.Append(@"autoArrows: " + AutoArrows.ToString().ToLower() + "});});</script>");
#endregion
if (string.IsNullOrEmpty(Main_ul_CssClass) && VerticalOrHorizontal == VerOrHor.Vertical)
Html.Append("<ul class="sf-menu sf-vertical sf-js-enabled sf-shadow" id='sample-menu-1'>");
else if (String.IsNullOrEmpty(Main_ul_CssClass))
Html.Append("<ul class="sf-menu sf-js-enabled sf-shadow" id='sample-menu-1'>");
else
Html.Append("<ul class="" + Main_ul_CssClass + "" id='sample-menu-1'>");
foreach (MenuItem item in _MenuItems)
{
if (item == null) continue;
if (item.SubMenuItems != null && item.SubMenuItems.Count > 0)
{
Html.Append("<li" + item.li_CssClass + ">");
Html.Append("<a href="" + item.Href + "">" + item.Text.Trim() + "</a>");
ParseSubMenuItems(ref Html, item);
Html.Append("</li>");
}
else if (item.SubMenuItems != null)
Html.Append("<li" + item.li_CssClass + "><a href="" + item.Href + "">" + item.Text.Trim() + "</a></li>");
}
Html.Append("</ul>");
return Html;
}
void ParseSubMenuItems(ref StringBuilder Html, MenuItem menuItems)
{
if (menuItems == null) return;
Html.Append("<ul " + menuItems.ul_CssClass + " style="display: none; visibility: hidden;">");
foreach (var item in menuItems.SubMenuItems)
{
if (item == null) continue;
MenuItem Sub_MenuItem = item as MenuItem;
WebControl webControl = item as WebControl;
if (Sub_MenuItem != null)
{
if (Sub_MenuItem.SubMenuItems != null && Sub_MenuItem.SubMenuItems.Count > 0)
{
Html.Append("<li" + Sub_MenuItem.li_CssClass + ">");
Html.Append("<a href="" + Sub_MenuItem.Href + "">" + Sub_MenuItem.Text.Trim() + "</a>");
ParseSubMenuItems(ref Html, Sub_MenuItem);
Html.Append("</li>");
}
else if (Sub_MenuItem.SubMenuItems != null)
Html.Append("<li" + Sub_MenuItem.li_CssClass + "><a href="" + Sub_MenuItem.Href + "">" + Sub_MenuItem.Text.Trim() + "</a></li>");
}
else if (webControl != null)
{
Html.Append("<li>");
webControl.EnableViewState = true;
this.Controls.Add(webControl);
webControl.EnableViewState = true;
StringBuilder sb = new StringBuilder();
sb.Append("<div>");
using (StringWriter sw = new StringWriter(sb))
{
using (HtmlTextWriter textWriter = new HtmlTextWriter(sw))
{
webControl.RenderControl(textWriter);
}
}
sb.Append("</div>");
Html.Append(sb.ToString());
Html.Append("</li>");
}
}
Html.Append("</ul>");
}
#endregion
}
}
MenuItem.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Collections;
namespace MenuServerControl
{
[DefaultProperty("SubMenuItems")]
[ParseChildren(true, "SubMenuItems")]
[TypeConverter(typeof(ExpandableObjectConverter))]
public class MenuItem : INamingContainer
{
#region Fields
ArrayList _SubMenuItems;
string text = "";
string href = "#";
string _ul_CssClass = "";
string _li_CssClass = "";
#endregion
#region Properties
[Description("متن منو آیتم")]
[DefaultValue("")]
[NotifyParentProperty(true)]
public string Text
{
get
{
return text;
}
set
{
text = value;
}
}
[DefaultValue("#")]
[Description("<a /> href attribute")]
[NotifyParentProperty(true)]
public string Href
{
get
{
return href;
}
set
{
href = value;
}
}
[DefaultValue("")]
[Description("<ul /> css class")]
[NotifyParentProperty(true)]
public string ul_CssClass
{
get
{
if (string.IsNullOrEmpty(_ul_CssClass)) return "";
_ul_CssClass = " class="" + _ul_CssClass + """;
return _ul_CssClass;
}
set { this._ul_CssClass = value.Trim(); }
}
[DefaultValue("")]
[Description("<li /> css class")]
[NotifyParentProperty(true)]
public string li_CssClass
{
get
{
if (string.IsNullOrEmpty(_li_CssClass)) return "";
_li_CssClass = " class="" + _li_CssClass + """;
return _li_CssClass;
}
set { this._li_CssClass = value.Trim(); }
}
[Category("Behavior")]
[Description("The MenuItems collection")]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
[PersistenceMode(PersistenceMode.InnerDefaultProperty)]
public ArrayList SubMenuItems
{
get
{
if (_SubMenuItems == null)
_SubMenuItems = new ArrayList();
return _SubMenuItems;
}
}
#endregion
}
}
You can download the project from here.
View 1 Replies
Jul 16, 2010
Trying to get a helloworld web application up running in Visual Web Developer 2010.
Now I created a new project with Home controller and two default views (index and about).
Then in the index view I added a button and a textbox...double clicking the button creates a handler in the view, but it's never called...what am I missing?
<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %>
View 2 Replies
Jul 28, 2010
i have two nested gridview inside an update panel. there is a button called btnPhoneEdit inside the child grid view. when the button gets clicked, it do cause partial post back as expected but it fails to invoke btnPhoneEdit_Click.
here is how my grid view looks like and how i add my custom data source to both parent and child grid view.
[Code]....
[Code]....
View 1 Replies
Mar 24, 2011
I've inherited an ASP.NET project that has poorly designed HTML; in one section, the tags are wrapped with an tag to allow for "click the row to view the information" functionality. The code is:
<asp:LinkButton ID="ViewArticle" runat="server" CommandName="Navigate" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "id") %>' >
<tr runat="server" class="list_item">
<td>some data</td>
<td>some data</td>
<td>some data</td>.........
How do I go about tying a JavaScript "onclick" event to the codebehind?
View 2 Replies
Oct 28, 2010
I'm constructing a LinkButton from my codebehind, and I need to assign the onclick to a method, and pass a parameter with it too. I have this so far:
LinkButton lnkdel = new LinkButton();
lnkdel.Text = "Delete";
protected void delline(string id)
View 2 Replies
Dec 15, 2010
Can i know the code written in C# to get a current time when a button event is triggered in ASP.NET web application project and time retreived is to saved in SQL database
View 3 Replies
Nov 18, 2010
I have a problem with the ASP FileUpload control. It occurs in Safari and on websites where anonymous authentication is disabled and windows authentication is enabled.
When I select a file in the upload-control and then press an ASP-button the serverside event for the button is not triggered and PostBack is false.
Steps to reproduce the error:
1. Create a page with a file upload and a button. Print a message in the page's load event so you can see that if postback is true or false
2. Open IIS-manager and Add a new application that points to the folder where the page is
3. Disable Anonymous Authentication, ASP.NET Impersonation and Forms Authentication for the application
7. Enable Windows Authentication for the application
8. Browse to the page with Safari
9. Select a file with the upload control
10. Press Ok. Postback is false
If you then enable anonymous authentication on the web application and restart the browser postback works as expected.
View 1 Replies
Dec 8, 2010
In Page_Load, Request["__EVENTTARGET"] is an empty string.
IS there some way I can find out which button triggered the postback before hitting the buttons event handler?
View 1 Replies
Sep 10, 2010
Obviously I am a total noob and this is simple to some of you, but I can not figure out why the rest of the sub works, but the button1.Text="Uploading, Please Wait..." seems to be completely ignored.
The button is supposed to change text when clicked but no method I have tried works with my page.
Here is my simple upload form page:
[Code]....
View 1 Replies
Feb 25, 2010
How do I setup a default setting so that if I do not set an OnClick (i.e the asp.net OnClick attribute) explicitly for an asp:LinkButton tag, it will not render an onclick(html attribute for javascript) attribute client side? By default, asp.net adds an onclick='doPostBack....' for the LinkButton.
Case for use:
There is a LinkButton tag on the page. For this page, if the user has one friend, I only want to run client side code if the button is clicked and would not for any reason want to make a post back. If the user has more than one friend I would want a click to trigger a postback.
Using any asp.net Ajaxtoolkit
Dynamically switching the control type (i.e. if friends == 1 use a asp:Hyperlink)
-I want to avoid this because it is not scalable. There might be many cases where I want an asp:Link tag to do a postback or to not do a postback depending on the user context or user attributes Using OnClientClick (I am using jQuery would like to avoid this)
View 2 Replies
Mar 19, 2010
I have an aspx page with two buttons, one of the buttons has an OnClick attribute to a function that should be run when clicked. When the other button is clicked there is an if statement checking if the page is a postback, if it is then I run some statements that need to be run when that button is clicked. That postback button works fine. However, the other button, when it's clicked the function it's supposed to call never executes, and the statements inside if (Page.IsPostBack) get executed instead. What can I do to fix this? Is there a way to make the button that calls a function not do a Post back?
View 1 Replies
Mar 22, 2010
In my project when i click any button or linkbutton, it doesnt fire any event or doesnt postback.
It was working fine but now it hv problem like this.
I think i have changed some settings by mistake.
View 5 Replies
Mar 9, 2011
Void button has a confirm box after receiving true, expecting running another button's click event
however, Void2_Button_Click not run, where is wrong?
protected void Void2_Button_Click(object sender, EventArgs e)
{
// do something
}
Void_Button.Attributes.Add("onclick", "var agree=confirm('Confirm to void?'); if (agree){document.getElementById('Void2_Button').click();}");
View 3 Replies
Dec 2, 2010
If I use an ImageButton or LinkButton, I just noticed that when clicking either, the Page_Load method executes before the method specified in the OnClick. Can this be avoided so that the method in the OnClick is triggered instead of Page_Load?
View 2 Replies
Mar 24, 2011
I would like to add an Onclick event to one button (ShipEdit is the name of the button), I would like to redirect user by clicking this button to new page that is (../Account/MyAccount.aspx) and send 2 variables that is (LineItem.LineKey and shipment.ShipmentKey) with the URL: I need to write a code in this module:
void repShipments_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
I have tried to use this line of code but it does not working.
ShipEdit.Attributes.Add("onclick","ShowPopUp(" ../Account/MyAccount.aspx?LineKey={0}&ShipmentKey=",true);",LineItem.LineKey,shipment.ShipmentKey;
I am not sure how writing it with the ShipEdit.onclick, it gave me error anything that I tried.
View 4 Replies
Dec 7, 2010
I have user control that have button in it. I want to create OnClick event for the button on aspx page that have that control.
View 3 Replies
Mar 25, 2010
Have a form with a button and some text fields on it.When I hit enter after filling a field the event for the button fires up event onClick.How can I get around this since on one of the fields I have a textchangeEvent I to fire up.
View 5 Replies
Feb 3, 2011
I have the following code and no matter what I do onclick event for button is not firing. I tried deleting the button, the pages. Redid the code. Moved the web project to a different computer and nothing. It worked a few hours ago.
Code on the web control .ascx:
[Code]...
This user control gets loaded into a placeholder.
View 1 Replies
Oct 2, 2010
I am having trouble with two buttons on a page. I dragged them on to the page and then double- clicked each of them in order to create the OnClick events.
I added my code to the events, but when I click the buttons, their respective events aren't being called.
My .aspx code:
[Code]....
My Code behind:
[Code]....
View 11 Replies
May 28, 2010
<input type="button" name="reset"
onclick="return ValidateValue(); __doPostBack('ApplyBtn','')" />
The above is the code generated for asp server button button control on browser. Now my query is that irrespective of ValidateValue() returning true/false __doPostBack('ApplyBtn','') function is not showing any effect for me. My understanding is that string passed to onclick acts like function body, and return will from first function will return control preventing second function from execution.
Is that correct?
View 1 Replies
Oct 7, 2010
i have a problem with some part of an applcation am developing, i have a button that works the first time its clicked and then does not work after that. There is a visible page post back, but the code is not executed. I want the a label on a page get a new value whenever the button is clicked.
Sub Button_Next_Click(ByVal sender As Object, ByVal e As System.EventArgs) x = Integer.Parse(Label_previous.Text) x = x + 1 Label_previous.Text = x End Sub
<asp:Button ID="Button_Next" runat="server" Text="1" Width="65px" onclick="Button_Next_Click" />
View 4 Replies
Jan 28, 2010
I have a button that I cannot see or click in design view in VS but I can locate it in my source. The reason I cannot see it is because it is overshadowed by a panel that has a repeater in it. I am trying to create an onclick event for it. The way I normally do this is just double click on the button or click on it and click the small lightning bolt in properties and double click the Click event for the button. This time I cannot do that.
So, I tried to create an on click event by doing this:
<asp:button ID="btnAdd" OnClick="btnAdd_Click" runat="server"/>
I then went to my .cs file and created a tidbit of code like:
protected void btnAdd_Click(object sender, EventArgs e)
{
lstEfins.Items.Add(txtEFINrehang.Text);
txtEFINrehang.Text = "";
}
However my button does not work... Its a very simple objective for my button, just adding a textbox value to a lstBox and I know its correct, so I know my code isnt broken. I just cannot get that button to fire correctly.
View 1 Replies
Jan 18, 2010
I have an issue in my application . When I am calling a Javascript function OnClick of Submit button, the range validators on my page doesnt work.
View 2 Replies
Sep 13, 2010
I have a placeholder and in there a button that is set as enable false and on certain conditions it become enabled.On page load I get all info in the panel. So far so good. Now If I added Onclick="btn1_click" in aspx page and got application error. I need to pass some info to next page on button click event.
View 2 Replies