繁体   English   中英

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

[英]From aspx.cs call ASP.NET Master Page (.Master) function

在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 WebForms:

首先,由于myCat不具有runat="server"属性,因此无法轻松将myCat控件中的数据发送到代码隐藏(.aspx.cs)页面。

此外,(通常)将WebForms设置为使每个页面独立运行。 可以通过以下方法来解决(从Site.Master代码隐藏页调用函数,使用Session变量,使用数据库-这些都涉及在您正在使用的两个页面之间创建通信通道)。

以我的经验,如果母版页的代码隐藏了搜索功能,则容易得多。

如果要改用JavaScript

由于您已经引用了JavaScript函数,因此您可能会更愿意遵循此路径(或不这样做-这里没有一个正确的答案):如果您想使用JavaScript并将搜索功能保留在Web API中,则Microsoft 这里提供一个非常深入的演练。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM