0

当我查看源代码时,我有一个如下所示的 ASP.NET DDL:

<select name="testControl" onchange="DoCustomStuff();setTimeout('__doPostBack(\'testControl\',\'\')', 0)" id="testControl">

在 .cs 页面上看起来像这样:

<asp:DropDownList ID="testControl" runat="server" onchange="DoCustomStuff()" OnSelectedIndexChanged="testControl_Changed" AutoPostBack="true" />

任何人都可以看到在这样的 DDL 上使用 onchange 和 AutoPostBack="true" 的问题吗?我问是因为我们有一些用户似乎没有正确调用 DoCustomStuff(),我想知道是否可以在 DoCustomStuff() 完成其工作之前执行 __doPostBack()。

4

1 回答 1

0

尝试像这样手动附加回发参考:

Page.ClientScript.RegisterClientScriptBlock(
  typeof(_Default), 
  "PageScripts", 
  string.Format("function DoCustomStuff() { /* Your Code Here */ {0} }", Page.ClientScript.GetPostBackEventReference(testControl, string.Empty))
);

testControl.Attributes["onchange"] =  "DoCustomStuff();";

这为您提供了回发客户端参考:

Page.ClientScript.GetPostBackEventReference(testControl, string.Empty))
于 2009-03-11T15:07:55.677 回答