我在一个简单的ASP Webform项目(asp framework 4.0)上工作,并使用VS 2010。
我的网站上有一些页面,我想使用 UpdatePanels
在我的网站的另一页上,我需要使用 AjaxControlToolkit lib中包含的 ModalPopupExtender 控件。
我遇到的问题是,如果我在项目中包含AjaxControlToolkit库,我的UpdatePanels根本不起作用(不需要实现这个库的任何组件,只需添加对它的引用在我的项目中)。
如果我删除对lib的引用,它可以正常工作。
你对如何简化这两个元素有所了解吗? UpdatePanel和AjaxControlToolkit lib?
非常感谢您的建议
以下是我使用的简单UpdatePanel代码:
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<asp:Repeater ID="Repeater1" runat="server" OnItemCommand="Repeater1_ItemCommand" OnItemDataBound="Repeater1_ItemDataBound">
<ItemTemplate>
<asp:LinkButton ID="lnk" runat="server" Text="show" CommandName="show"></asp:LinkButton>
</ItemTemplate>
</asp:Repeater>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Label runat="server" ID="label1"></asp:Label>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Repeater1" EventName="ItemCommand" />
</Triggers>
</asp:UpdatePanel>
在代码背后,我用这个:
protected void Page_Load(object sender, EventArgs e)
{
Repeater1.DataSource = new List<String>(){"zero", "un", "deux", "trois","quatre"};
Repeater1.DataBind();
}
protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
LinkButton lnk = ((LinkButton)e.Item.FindControl("lnk"));
lnk.CommandArgument = e.Item.ItemIndex.ToString();
}
protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
{
if (e.CommandName == "show")
label1.Text = "You click" + e.CommandArgument;
}
答案 0 :(得分:0)
我发现这篇帖子是因为我在为AjaxToolKit.dll添加引用时遇到了同样的问题, 然后看着可能是什么问题,然后发现这与注释看到javascript错误,是解决方案:D
我的代码中有一个脚本来启动刷新
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_beginRequest(BeginRequestHandler);
prm.add_endRequest(EndRequestHandler);
function BeginRequestHandler(sender, args)
{
var elementID = sender._activeElement.id;
...
}
收到“TypeError:sender._activeElement is undefined”
然后改变了var elementID = sender._activeElement.id;
到
var elementID = sender._postBackSettings.sourceElement.id;
并解决了我的问题。
没有对dll的引用工作正常,当我删除它。 有了引用,我不得不改变元素的属性。