将javascript代码移动到设计视图不起作用。只有代码隐藏的Attributes.Add(“onclick”才有效。困惑

时间:2010-07-15 17:23:51

标签: javascript asp.net onclick code-behind

我想在点击按钮后禁用按钮,同时触发回发事件以生成报告。我的第一组代码不起作用,因为禁用该按钮后不久页面将不会提交/回发。这是第一组未实现的代码。 onclientclick调用具有这些行的javascript函数

的document.getElementById( 'btnGenerateReport')禁用=真。 GetPostBackEventReference(btnGenerateReport, '');

因为它没有回发

我在

后面的page_load代码上尝试了以下内容
btnGenerateReport.Attributes.Add("onclick", "this.disabled=true;" + ClientScript.GetPostBackEventReference(btnGenerateReport, ""))

运作良好。但我试图复制生成并直接粘贴在设计视图上的javascript

onclick="this.disabled=true;__doPostBack('btnDownloadClientsWithConviction','');" 

在禁用attributes.add后面的代码后,它无法独立于客户端 但是当我检查视图源时,2页是相同的

为什么我无法将代码从代码隐藏转移到设计视图?

1 个答案:

答案 0 :(得分:1)

因为Button.ClientId是使用NamingContainer生成的。

请改为尝试:

document.getElementById('<%= btnGenerateReport.ClientId %>').disabled=true; 
GetPostBackEventReference('<%= btnGenerateReport.ClientId %>','');