我有这样的标记:
<asp:LinkButton runat="server" ID="btnGenerateReport" Text="Generate Report" OnClick="btnGenerateReport_Click" OnClientClick="javascript: return ShowConfirmBox(event, this)" />
在OnClientClick中,我通过JS中的代码从另一个按钮触发事件:
document.getElementById('<%= btnSave.ClientID %>').click();
它会发射。
但是在js服务器处理程序没有触发之后。有什么问题?
答案 0 :(得分:1)
当您致电('<%= btnSave.ClientID %>').click()
时,它会实际发布表单并调用btnSave_Click
并处理相同的内容。
在这里你不能指望btnGenerateReport_Click
调用。
为了做到这一点,你必须设置一些标志并调用btnGenerateReport_Click
以下示例代码可以帮助您实现此目标
<asp:HiddenField id="hdnInvokeGenerateReport" runat="server" value="0" />
并在JS中设置它
document.getElementById('<%= hdnInvokeGenerateReport.ClientID %>').value="1";
document.getElementById('<%= btnSave.ClientID %>').click();
在Code背后
protected void btnSave_Click(object sender, EventArgs e)
{
if(hdnInvokeGenerateReport.Value=="1")
{
btnGenerateReport_Click(this, null);
}
}