簡體   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