我正在尝试实现手动回发以触发未附加到控件的代码。我不想使用 AJAX PageMethods,因为我需要在回发期间引用某些控件,并且希望结果更新到页面上的 gridview。
我已经有另外两种可行的方法,但由于某种原因,我的第三种方法没有部署一次,但在我的开发机器上运行良好。
背后的代码(Page_load)
switch (Request["__EVENTARGUMENT"]) {
case "ItemReserved":
GetAllStock();
break;
case "PendingItemRemoved":
PopulatePending();
break;
case "StockInSubmitted":
SubmitNewStock(); // this doesn't fire
break;
}
一旦代码到达“SubmitNewStock()”,我就插入了一行写入日志文件。日志写在我的开发机器上,但没有写在网络服务器上。其他两个回发都按预期工作。
页面脚本
function ctxMenu_Reserve() {
PageMethods.SetItemReserved(CGRefForMenu);
__doPostBack('', 'ItemReserved');
HideMouseMenu();
}
function ctxMenuPending_Remove() {
PageMethods.RemovePendingItem(CGRefForPendingMenu);
__doPostBack('', 'PendingItemRemoved');
}
function StockINSubmit(){
SubmitPlaceHolder = document.getElementById('<%=PlaceholderStockInSubmit.ClientID %>');
SubmitPlaceHolder.innerHTML = "Processing...";
__doPostBack('', 'StockInSubmitted'); //Causes postback, but relevant code is not triggered once on my live server
}
有谁知道为什么在我将网站部署到我的实时网络服务器后这不起作用?
我应该提到 StockINSubmit() 是从动态创建的客户端链接按钮启动的,该按钮位于模式弹出框内。
PlaceholderStockInSubmit.Controls.Add(
new LinkButton() {
OnClientClick = "StockINSubmit()",
Text = "Submit",
ID = "lnkStockInSubmit"
});
StockINSubmit() 替换包含该按钮的 DIV 的 HTML 内容。(所以我点击“提交”,它变为“处理”标签)。我看不出这会导致任何问题的原因,但认为值得一提。