gpt4 book ai didi

javascript - 从 aspx.cs 调用 ASP.NET 母版页 (.Master) 中的函数

转载 作者:行者123 更新时间:2023-11-30 20:13:54 25 4
gpt4 key购买 nike

在 ASP.NET 母版页 (.Master) 中,有一个文本框可以过滤网站中的内容。为此,我想调用 .aspx.cs 文件中的函数 GetMessageLogs。

Site.Master:

<button onclick="containCatText()" class="catbtn">Category</button>
<div id="myDropdownCat" class="catdown-content">
<input type="text" placeholder="Search.." id="myCat" onkeyup="filterFunction()">
</div>
<script>
var myCat = document.getElementById("myCat").value;
</script>

Feeds.aspx:

<%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Feeds.aspx.cs" Inherits="ReportTool.Users.Feeds" %>

Feeds.aspx.cs:

namespace ReportTool.Users
{
public partial class Feeds : System.Web.UI.Page
{
Inov.ReportTool rt = new Inov.ReportTool();
MessageLogs = rt.GetMessageLogs(null, Server.MapPath("/ReportTool/Photo") + "\\", Server.MapPath("/ReportTool/Video") + "\\", new DateTime(2016, 09, 15),DateTime.Now, "%J%","Tr");

我的问题只是如何从 Site.Maste 的变量 myCat 替换 Feeds.aspx.cs 中的“%J%”?

最佳答案

免责声明:以下答案将演示如何使用 ASP.Net UpdatePanelFindControl 工作。这只是基本的。

首先把文本框和按钮改成ASP控件,这样ASP就可以识别并绑定(bind)它们。

Site.Master

    <asp:Button runat="server" ID="BtnFilter" Text="Category" CssClass="catbtn" />
<div class="catdown-content">
<asp:TextBox runat="server" ID="TxtCategory">
</asp:TextBox>
</div>

Feeds.aspx

<%-- ScriptManager is mandatory for UpdatePanel --%>
<asp:ScriptManager runat="server">
</asp:ScriptManager>

<asp:UpdatePanel runat="server" ID="UpdPnlFeedWidget">
<ContentTemplate>
<%-- In this example this label will change its content after the BtnFilter is clicked --%>
<asp:Label runat="server" ID="LblContent">
</asp:Label>
</ContentTemplate>
<Triggers>
<%-- Register the button that will trigger the UpdatePanel content --%>
<asp:AsyncPostBackTrigger ControlID="BtnFilter" />
</Triggers>
</asp:UpdatePanel>

Feeds.aspx.cs

    protected void Page_Load(object sender, EventArgs e)
{
//Find the TxtFilter that we want to get the value
Control cntrlFilter = this.Master.FindControl("TxtCategory");
if (cntrlFilter != null)
{
//Cast the Control instance to TextBox
TextBox txtFilter = (TextBox)cntrlFilter;
//Assign the content into the label
LblContent.Text = txtFilter.Text;
}
}

代码大致是这样的:你点击了BtnFilter,然后它触发了UpdPnlFeedWidget控件,它会做一个AJAX请求,一旦请求被服务器代码将查找与请求一起发送的 TxtFilter 的 值,然后设置 LblContent,然后它将返回将替换 UpdPnlFeedWidget 内容的 HTML .您可以通过浏览器控制台上的“网络”选项卡查看请求。

这种方法在 ASP Web 窗体的处理方式中很常见。至少,有一段时间......

关于javascript - 从 aspx.cs 调用 ASP.NET 母版页 (.Master) 中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52118267/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com