3

我从事一个简单的 ASP Webform 项目(asp 框架 4.0),并使用 VS 2010。

我的网站上有一些页面要使用UpdatePanels
在我网站的另一个页面上,我需要使用AjaxControlToolkit库 中包含的ModalPopupExtender控件。

我遇到的问题是,如果我在我的项目中包含 AjaxControlToolkit 库,我的 UpdatePanels 根本不起作用(无需实现该库的任何组件,只需在我的项目中添加对它的引用)。
如果我删除对 lib 的引用,它工作正常。


你知道如何调和这两个元素吗?UpdatePanel 和 AjaxControlToolkit 库?

非常感谢您的建议

这是我使用的简单 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;
    }
4

1 回答 1

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 的引用工作正常,当我删除它时。通过参考,我不得不更改元素的属性。

于 2013-05-21T09:13:47.427 回答