在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%”?
答案 0 :(得分:0)
如果要使用ASP.Net WebForms:
首先,由于myCat
不具有myCat
属性,因此无法轻易将runat="server"
控件中的数据发送到代码隐藏(.aspx.cs)页面。
此外,(通常)将WebForms设置为使每个页面独立运行。有多种解决方法(从Site.Master代码隐藏页调用函数,使用Session变量,使用数据库-这些都涉及在您正在使用的两个页面之间创建通信通道)。
根据我的经验,如果“母版页”在其代码后方具有搜索功能,则容易得多。
如果您想改用JavaScript
由于您已经引用了JavaScript函数,因此您可能会更轻松地遵循此路径(或者不是-此处并没有一个正确的答案):如果您想使用JavaScript并将搜索功能保留在Web API中,Microsoft提供了here的非常深入的演练。