【问题标题】:Webbutton is not working in chrome in asp.net applicationWebbutton 在 asp.net 应用程序中的 chrome 中不起作用
【发布时间】:2022-08-13 22:39:04
【问题描述】:

Webbutton 在 chrome 中无法在 asp.net 应用程序中工作。它会抛出一个错误,抱怨 SubmitTheData() 未定义。

相同的代码适用于 IE 浏览器。

未捕获的 ReferenceError:未定义 SubmitTheData 在 HTMLInputElement.onclick (MTree.aspx:468:316)

当我看到开发人员工具源时,它会引发错误

<input onclick=\"SubmitTheData(this); __doPostBack(\'SelectAllButton\',\'\')\" name=\"SelectAllButton\" type=\"button\" id=\"SelectAllButton\" value=\"Select All\" id=\"btn226705\" class=\"EButton\" title=\"Select All\" /></cc1:WebButton>

有没有办法以不抛出错误的方式编写这行代码

strFunction = (parameters.Count > 0)? \"SubmitTheData(this\" + GetParam() +\");\":\"SubmitTheData(this);\"; } return strFunction;

<cc1:WebButton ID=\"SelectAllButton\" runat=\"server\"></cc1:WebButton>
                
                
                
WebButton.cs        
                
     private string GetFunction()
    {
        string strFunction = string.Empty;
        
        if (this.function != string.Empty )
        {
            strFunction = this.function ;
        }
        else
        {
            strFunction = (parameters.Count > 0)? \"SubmitTheData(this\" + GetParam() +\");\":\"SubmitTheData(this);\";
        }
        return strFunction;
    }

    protected override void Render(System.Web.UI.HtmlTextWriter writer)
    {                   
        this.Attributes.Add(\"onclick\",GetFunction().ToString());            
        base.Render (writer);           
    }
        
  • 为什么在 2022 年使用 WebForms?
  • &lt;cc1:WebButton&gt; 不是 ASP.NET WebForms 中的标准控件,它是从您正在使用的第三方库加载的自定义控件:在您的 web.config 文件中查找 tagPrefix=\"cc1\" 以获取程序集名称。您需要联系该库的作者寻求帮助。
  • @Dai,这会引发错误 strFunction = (parameters.Count &gt; 0)? \"SubmitTheData(this\" + GetParam() +\");\":\"SubmitTheData(this);\";。如何在不引发错误的情况下编写此代码。

标签: asp.net


【解决方案1】:

好的,我认为让您的自定义控制代码“注入”点击事件的理由非常但非常少。

为什么不让您的用户控件只使用一个简单且标准的 asp.net 按钮,然后单击该按钮的简单和标准按钮?

但是,如果您发布该用户控件的标记,将会有很大帮助。如果没有该标记,就很难猜测并查看您对该用户控件有什么标记。

作为一般规则,您可以使用标准标记构建和设计用户控件。

如果您希望 UC 中的按钮单击代码触发当前网页上的代码,而不是用于您的用户控件的代码,那么唯一困难的部分就变成了。

此外,您遗漏了放置 UC 代码的页面标记。我的意思是,当然,所有这些都很好、温暖和模糊地提供了关于 UC 呈现的输出调试浏览器代码 - 并且在付出了所有努力之后,然后,您出于某些令人震惊的原因,在您放入该 UC 控件的页面上忽略了标记?我们不需要原始标记的整个页面,但您肯定想要为您拥有的 UC 控件共享至少“一些”标记。 (为什么要忽略它-我真的很想知道为什么???)。

但是,(应该)零需要在这里使用“渲染”事件来添加点击事件 - 一个非常糟糕的主意,除非所有其他道路和可能性都已用尽。

【讨论】:

    猜你喜欢
    • 2014-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-27
    • 1970-01-01
    • 2015-05-29
    相关资源
    最近更新 更多