我正在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