Gun*_*nar 13 javascript asp.net postback
首先,我发现这个唯一的帖子(调用多个dopostback-from-javascript)对我的问题没有帮助,所以我不相信这篇文章是重复的.
我在我的ASPX网页中有这个JavaScript函数,它包含一个__doPostBack函数:
function OpenSubTable(bolID, controlID) {
// code
__doPostBack('UpdatePanelSearch', bolID);
// more code
}
Run Code Online (Sandbox Code Playgroud)
工作得很好,我可以将bolID的值放到我的代码后面,如下所示:
protected void UpdatePanelSearch_Load(object sender, EventArgs e)
{
var bolID = Request["__EVENTARGUMENT"];
// code
}
Run Code Online (Sandbox Code Playgroud)
问题是,我必须通过回发传递2个不同的值.这有什么简单的解决方案吗?显然这样的事情不起作用:
function OpenSubTable(bolID, controlID) {
// code
__doPostBack('UpdatePanelSearch', bolID, controlID); // not that simple, i'm afraid :(
// more code
}
Run Code Online (Sandbox Code Playgroud)
任何帮助都是最受欢迎的.
此致,Gunnar
jba*_*bey 13
您可以将这两个值作为一个JSON字符串传递:
function OpenSubTable(bolID, controlID) {
__doPostBack('UpdatePanelSearch', JSON.stringify({ bolID: bolID, controlID: controlID}));
}
Run Code Online (Sandbox Code Playgroud)
然后在服务器上解析它:
protected void UpdatePanelSearch_Load(object sender, EventArgs e)
{
SomeDTO deserializedArgs =
JsonConvert.DeserializeObject<SomeDTO>(Request["__EVENTARGUMENT"]);
var bolID = deserializedArgs.bolID;
var controlID = deserializedArgs.controlID;
}
public class SomeDTO
{
public string bolID { get; set; }
public string controlID { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
如果您使用.Net> = 4.0,我相信您可以反序列化为通用的操作并避免必须创建SomeDTO.编辑:有关反序列化为动态类型的详细信息.