使用ajax.load()时,ASP.NET GridView更新刷新页面

时间:2014-06-04 12:13:27

标签: jquery asp.net ajax gridview postback

我正在ASP.NET中建立一个网站,人们可以在健身计划中添加练习。 基本上一个人按下添加新的时间表,然后输入他想去健身房的天数。我在不同的div中使用ajax.load(),因此该人不必看到50个不同的页面,因为我更愿意提供动态的方式来制定计划。

例如,你想每周3天去健身房。将出现3个按钮(第1天,第2天,第3天)。带有所有练习的GridView的div将加载ajax.load()函数。

我的列表非常大,所以我创建了一个搜索按钮,以便您可以过滤GridView。我偶然发现的问题是,当您提供搜索条件并按下按钮时,GridView会更新,但整个页面会刷新,我的练习将成为整个页面。所以我的日常按钮消失了,这显然是个大问题。

我的问题是:您可以使用搜索按钮更新网格视图而不会导致刷新,因此它只会停留在div中并且不会占用整个页面。

我的ASP.CODE:`

    <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>

<asp:UpdatePanel ID="UpdatePanel1" runat="server">  
<ContentTemplate> 

      <br />
  <div id="laadoefeningen">
   <asp:TextBox ID="txtSearch"  runat="server" placeholder="Zoek Oefening"></asp:TextBox>
    <asp:Button ID="btnSearch" runat="server" Text="Zoeken" />
    <br />
      <br />
           <asp:TextBox ID="txtgebruikersid" Visible="false" CssClass="TxtStyle" runat="server"></asp:TextBox>
    <asp:TextBox ID="txtdag" Visible="false" CssClass="TxtStyle" runat="server"></asp:TextBox>
        <asp:GridView ID="grdOefeningen" AutoGenerateColumns="false" EnableViewState="false" runat="server">
            <Columns>
                    <asp:BoundField DataField="OefNaam" HeaderText="Naam" 
                        SortExpression="OefNaam" />
                    <asp:BoundField DataField="OefBeschrijving" HeaderText="Beschrijving" 
                        SortExpression="Beschrijving" />
                <asp:TemplateField HeaderText="Toevoegen"  ItemStyle-Font-Underline="true">
    <ItemTemplate>
 <a href="#"class="toevoegenhref" id="oef<%# Eval("OefId")%>">Toevoegen</a>
     </ItemTemplate>
</asp:TemplateField>
            </Columns>
        </asp:GridView>

    </div>  

</ContentTemplate>

</asp:UpdatePanel>


    <script type="text/javascript">

        $(".toevoegenhref").on('click', function () {
            var dag = "<%=txtdag.Text%>";
            var gebruikersid = "<%=txtgebruikersid.text%>";
            var oefid = this.id.replace('oef', '');

            $("#laadoefeningen").load("../schema/schemaoefdetail.aspx?dag=" + dag + "&gebruikersid=" + gebruikersid + "&oefid=" + oefid + "&newoef=y");

        });


    </script>

`

我的VB.NET代码:

 Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
    Dim obll As New clBL_Oefeningen
    Dim queryStringDag As String = Request.QueryString.Get("dag")
    Dim queryStringId As String = Request.QueryString.Get("gebruikersid")

    'Dim categorieSec As String

    If Not (Page.IsPostBack) Then
        loadgrid()
    End If
End Sub

Protected Sub btnSearch_Click(sender As Object, e As System.EventArgs) Handles btnSearch.Click

    loadgrid()

End Sub

Protected Sub loadgrid()
    Dim obll As New clBL_Oefeningen

    If (txtsearch.Text = "") Then
        grdOefeningen.DataSource = obll.selectAll()

    Else
        grdOefeningen.DataSource = obll.zoekoefening(txtSearch.Text)

    End If
    grdoefeningen.DataBind()


End Sub

0 个答案:

没有答案