Javascript 客户端单击asp net时创建按钮

Javascript 客户端单击asp net时创建按钮,javascript,c#,asp.net,button,onclientclick,Javascript,C#,Asp.net,Button,Onclientclick,我正在从代码c#创建按钮: 但是在客户端,当我单击OnClientClick时,OnClientClick函数不起作用 什么也没发生。我做错了什么 生成的HTML: <input type="submit" name="ctl00$ctl00$Main$EditorMain$tabTabContainer$ctl00$Attr‌​433$btnAddCalculatio‌​n" value="Add count" id="ctl00_ctl00_Main_EditorMain_ta

我正在从代码c#创建按钮:

但是在客户端,当我单击OnClientClick时,OnClientClick函数不起作用 什么也没发生。我做错了什么


生成的HTML:

<input type="submit" name="ctl00$ctl00$Main$EditorMain$tabTabContainer$ctl00$Attr‌​433$btnAddCalculatio‌​n"  
value="Add count" 
id="ctl00_ctl00_Main_EditorMain_tabTabContainer_ctl00_Attr43‌​3_btnAddCalculation"  
disabled="disabled" class="blue_button" />

修复此问题:

    Button btnAddCalculation = new Button();
    btnAddCalculation.ID = "btnAddCalculation";
    btnAddCalculation.Text = "Add count";
    btnAddCalculation.SkinID = "middleButton";
    btnAddCalculation.Visible = true;
    btnAddCalculation.Enabled = true;

    string sPath = String.Format(
        "WindowCalculationArenda.aspx?{0}={1}&TempGuid={2}&IdDocument={3}",
        SessionViewstateConstants.CalculationType,
        CalcType.New,
        Guid.NewGuid(),
        oEditedDocument.Id.ToString()
    );
    //          btnAddCalculation.Attributes.Add("onclick", @"window.open('InformationAboutAddAddr.aspx', '_blank', 'location=yes,height=500,width=450,scrollbars=yes,status=yes');");
    btnAddCalculation.Click += new EventHandler(btnClick_cl);
    btnAddCalculation.OnClientClick = clsCommonHelper.sGetWindowOpen(sPath, 1100, 500) + "return false;";

public static string sGetWindowOpen(string sLink, int iWidth, int iHeight)
{
    return "javascript:setTimeout(function(){ WindowOpen('" + sLink + "', " + iWidth + ", " + iHeight + "); }, 100); ";
}

默认情况下,asp.net服务器将创建禁用的按钮,除非您明确指定

您提供的ASP.NET代码看起来正常;因此,我怀疑问题与客户端上运行的脚本有关。“提交”按钮可能已禁用,因为表单内容无效。在这种情况下,您的按钮可能被禁用,具体取决于用于标识“提交”按钮的选择器

要避免这种情况,请更改按钮的行为,使其呈现为
按钮
类型的输入,而不是
提交
。您可以使用
UseSubmitBehavior
-属性来实现这一点:

btnAddCalculation.UseSubmitBehavior = false;

用于禁用按钮

如果将动态按钮添加到本身已禁用的容器中,则此动态按钮也将被禁用。为了确保正确添加按钮,请使用HTML中的新容器(例如,
)并从codebehind将按钮添加到该容器中

还可以检查以下内容:-

创建新按钮时,请使用CausesValidation=false。这将避免单击此按钮时触发任何RequiredFieldValidator。RequiredFieldValidator也会停止单击按钮。 e、 g


您需要找出按钮被禁用的原因。可能是由于一些JavaScript。还要检查您是否需要
输入[type=submit]
,或者其他类型是否更适合。这可能与原始问题有关。可能一些JavaScript禁用了submit按钮,因为表单还无效。根据选择器的不同,这可能会导致所有类型为submit的输入被禁用。
btnAddCalculation.UseSubmitBehavior = false;
Button btnAddCalculation = new Button();
btnAddCalculation.ID = "btnAddCalculation";
btnAddCalculation.Text = "Add count";
btnAddCalculation.SkinID = "middleButton";
btnAddCalculation.Visible = true;
btnAddCalculation.Enabled = true;
btnAddCalculation.CausesValidation = false;