0

我有一个带有三个图像按钮的母版页。在母版页下方的内容中,我有列表框,当我选择列表中的项目时,它会在内容中打开一个新列表。问题是,当我进行选择时,整个页面都会重新加载,并且带有图像的母版页会重新加载,并且需要 1 秒钟才能全部返回。正如您可能理解的那样,这不是很方便,而且它不是供个人使用的程序。是否可以使回发仅适用于下面的字段而保持母版页不变?

母版页:

<%@ Master Language="VB"  CodeFile="MyMasterPage.master.vb" Inherits="MyMasterPage" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div id="topContent" align="center">
        <table>
            <tr>
                <td style="width:400px;" align="right" axis="top">
                </td>
                <td>
                            <asp:Image ID="Image1" runat="server" ImageUrl="~/PetrolinaLetters.png" />
                </td>
                <td style="width:400px; text-align:center;" valign="top">
                <asp:Label ID="userText" runat="server" BorderStyle="Double" Width="130px" Font-Bold="True"></asp:Label>
                </td>
            </tr>
        </table>
        <div>
            <table>
                <tr>
                    <td style="width:170px;">
                        <asp:ImageButton ID="ImageButton1" runat="server" Height="30px" ImageUrl="~/orderButton.png"
                            Width="160px" />
                    </td>
                    <td style="width: 170px;">
                        <asp:ImageButton ID="ImageButton2" runat="server" Height="30px" ImageUrl="~/orderHistory.png"
                            Width="160px" />
                    </td>
                    <td style="width:170px;">
                        <asp:ImageButton ID="ImageButton3" runat="server" Height="30px" ImageUrl="~/changePass.png"
                            Width="160px" />
                    </td>
                </tr>
            </table>
        </div>
        <br />
        <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
        </asp:ContentPlaceHolder>
    </div>
    </form>
</body>
</html>
4

1 回答 1

0

您将需要进行部分回发(AKA:AJAX)以不触及页面元素的其余部分,并且仍然具有来自列表元素的所需行为。

A- 使用 jquery 捕获更改的值,转到您的网络服务器,然后返回数据(快速,推荐,但需要一些工作)

一些有用的例子:

  1. http://jquerybyexample.blogspot.com/2012/04/how-to-populate-aspnet-dropdownlist.html
  2. jQuery-AJAX 将下拉列表重新绑定到存储过程的结果
  3. http://amin-sayed.blogspot.com/2008/10/in-this-example-ill-demonstrate-how-to.html

B- 在您需要更新它们的控件周围使用更新面板,而不需要页面的其余部分(从性能角度来看不是那么快,但非常容易实现)

  1. http://www.asp.net/web-forms/tutorials/aspnet-ajax/understanding-asp-net-ajax-updatepanel-triggers
  2. http://www.asp.net/ajax/documentation/live/tutorials/IntroductionUpdatePanel.aspx
  3. http://www.netrostar.com/How-to-Use-NET-Update-Panel
于 2013-02-04T14:48:43.507 回答