为什么不使用UpdatePanel渲染部分?

时间:2013-07-03 15:26:06

标签: c# asp.net updatepanel

我需要使用ajax进行部分渲染;我不知道出了什么问题。 ¿有什么问题?

我的代码:

ASCX

<div id="temasatratar" onclick="__doPostBack('UpdatePanel1', '');"><h1>Temas a tratar</h1></div>

<asp:UpdatePanel ID="UpdatePanel1" runat="server" OnLoad="UpdatePanel1_Load">
    <ContentTemplate>
        <asp:Label runat="server" ID="Label1" />
    </ContentTemplate>
</asp:UpdatePanel>

ascx.cs

    protected void UpdatePanel1_Load(object sender, EventArgs e)
    {
        Random rnd = new Random();
        int number = rnd.Next(0, 99999);
        Label1.Text = "Best "+number;
    }

有什么建议吗?

我的应用程序:Sharepoint - Visual Web部件/ C#/ Asp.Net / Visual Studio

1 个答案:

答案 0 :(得分:2)

我会使用一个不可见的假按钮作为UpdatePanel的触发器:

<div id="temasatratar" onclick="__doPostBack('fakeButton', '');"><h1>Temas a tratar</h1></div>
<asp:LinkButton ID="fakeButton" style="display:none" runat="server" Text="foo" OnClick="fakeButton_Click" />
<asp:UpdatePanel ID="UpdatePanel1" runat="server" OnLoad="UpdatePanel1_Load">
    <ContentTemplate>
        <asp:Label runat="server" ID="Label1" />
    </ContentTemplate>
    <Triggers>
        <asp:AsyncPostBackTrigger ControlID="fakeButton" />
    </Triggers>
</asp:UpdatePanel>

现在,当用户点击div时,这个click-event会在异步回发中处理。

protected void fakeButton_Click(Object sender, EventArgs e)
{
    // you are in an asynchronous postback now
}