![](/img/trans.png)
[英]Suspected error thrown in doPostBack AJAX ASP.NET WebForms
[英]ASP.NET - __doPostBack is not defined error from DataList ItemCommand event
我正在使用DataList進行自定義分頁實現,並且按鈕單擊在本地有效,但是在將其部署到我的Godaddy服務器中后,顯示__doPostBack的按鈕單擊未定義錯誤
DataList代碼在Usercontrol中
<asp:DataList CellPadding="1" RepeatDirection="Horizontal" runat="server" ID="dlPager" onitemcommand="dlPager_ItemCommand">
<ItemTemplate>
<asp:LinkButton Enabled='<%#Eval("Enabled") %>'
runat="server" ID="lnkPageNo"
Text='<%#Eval("Text") %>'
CommandArgument='<%#Eval("Value") %>'
CommandName="PageNo"
BorderStyle="Solid"
BorderWidth="2px"
Font-Bold="True"
Font-Size="Medium"
ForeColor="White"
BackColor="#0066FF"
BorderColor="#66FF33"
Height="20px"
CausesValidation="False">
</asp:LinkButton>
</ItemTemplate></asp:DataList>
頁面的查看源顯示,
<table id="ctl00_cphBody_ctl00_dlPager" cellspacing="0" cellpadding="1" CausesValidation="False" border="0" style="border-collapse:collapse;">
<tr>
<td>
<input type="button" name="ctl00$cphBody$ctl00$dlPager$ctl00$lnkPageNo" value="1" id="ctl00_cphBody_ctl00_dlPager_ctl00_lnkPageNo" disabled="disabled" style="color:White;background-color:#0066FF;border-color:#66FF33;border-width:2px;border-style:Solid;font-size:Medium;font-weight:bold;height:20px;" />
</td><td>
<input type="button" name="ctl00$cphBody$ctl00$dlPager$ctl01$lnkPageNo" value="2" onclick="javascript:__doPostBack('ctl00$cphBody$ctl00$dlPager$ctl01$lnkPageNo','')" id="ctl00_cphBody_ctl00_dlPager_ctl01_lnkPageNo" style="color:White;background-color:#0066FF;border-color:#66FF33;border-width:2px;border-style:Solid;font-size:Medium;font-weight:bold;height:20px;" />
</td><td>
<input type="button" name="ctl00$cphBody$ctl00$dlPager$ctl02$lnkPageNo" value="3" onclick="javascript:__doPostBack('ctl00$cphBody$ctl00$dlPager$ctl02$lnkPageNo','')" id="ctl00_cphBody_ctl00_dlPager_ctl02_lnkPageNo" style="color:White;background-color:#0066FF;border-color:#66FF33;border-width:2px;border-style:Solid;font-size:Medium;font-weight:bold;height:20px;" />
</td>
</tr>
用戶控制碼后面
protected void dlPager_ItemCommand(object source, DataListCommandEventArgs e)
{
if (e.CommandName == "PageNo")
{
GetData(Convert.ToInt32(e.CommandArgument));
}
}
頁面加載是
if (!Page.IsPostBack)
{
GetData(1);
}
我嘗試了其他類似線程中提到的解決方案,但沒有一個起作用。
我可以看到頁面的視圖源中已經存在doPostback scipt。 我正在使用VS 2010
您需要添加Page.ClientScript.GetPostBackEventReference(this, string.Empty);
鏈接按鈕的OnClick
事件。 因此,您必須在dlPager_ItemDataBound
執行此dlPager_ItemDataBound
,在這里您可以從e.Item.FindControl
找到LinkButton
。 您的代碼可能如下所示:
protected void dlPager_ItemDataBound(object sender, DataListItemEventArgs e)
{
var lb = e.Item.FindControl("lnkPageNo") as LinkButton;
if (lb != null)
{
lb.Attributes["onclick"] = Page.ClientScript.GetPostBackEventReference(this, string.Empty);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.