佳木斯湛栽影视文化发展公司

主頁 > 知識(shí)庫 > 網(wǎng)頁(aspx)與用戶控件(ascx)交互邏輯處理實(shí)現(xiàn)

網(wǎng)頁(aspx)與用戶控件(ascx)交互邏輯處理實(shí)現(xiàn)

熱門標(biāo)簽:Linux服務(wù)器 科大訊飛語音識(shí)別系統(tǒng) Mysql連接數(shù)設(shè)置 團(tuán)購網(wǎng)站 電子圍欄 銀行業(yè)務(wù) 服務(wù)器配置 阿里云
幾個(gè)頁面(ASPX)都使用一些相同的控件,一個(gè)文本框,二個(gè)按鈕(搜索和導(dǎo)出),為了以后好維護(hù),把這相同的部分抽取放在一個(gè)用戶控件(ASCX)上?,F(xiàn)需要處理邏輯如下

搜索事件處理的邏輯在各個(gè)頁面處理。 問題是按鈕在用戶控件內(nèi),Click事件怎樣寫在各個(gè)頁面上?
每個(gè)頁面的搜索結(jié)果不同的格式,因此把結(jié)果顯示于各自的頁面上。

用戶控件的導(dǎo)出默認(rèn)是Enabled="false" ,當(dāng)有搜索結(jié)果時(shí),它才會(huì)變?yōu)閠rue。 它怎樣知道各個(gè)頁面是否已經(jīng)有了結(jié)果?

用戶控件的文本框的值,作為搜索條件,也就是每個(gè)頁面的執(zhí)行方法的參數(shù)。 aspx怎樣獲取用戶控件ascx內(nèi)的文本框的值?

下面是ascx:
復(fù)制代碼 代碼如下:

%@ Control Language="C#" AutoEventWireup="true" CodeFile="SearchForm.ascx.cs" Inherits="System_Assets_Report_SearchForm" %>
div style="margin: 3px;">
資產(chǎn)編號(hào) asp:TextBox ID="TextBoxAssetsNumber" runat="server" CssClass="textbox" Height="20px" >/asp:TextBox>
asp:Button ID="ButtonSearch" runat="server" Text="Search" OnClick="ButtonSearch_Click" />
nbsp;asp:Button ID="ButtonExport" runat="server" Text="導(dǎo)出至Excel" OnClick="ButtonExport_Click" Enabled="false" />
/div>

為了解決搜索的Click事件在各個(gè)頁面執(zhí)行,Insus.NET在用戶控件使用委托(delegate):
復(fù)制代碼 代碼如下:

public delegate void SearchEventHandler(object sender, EventArgs e);
public delegate void ExportEventHandler(object sender, EventArgs e);

另外為了搜索結(jié)果是否有記錄,對(duì)應(yīng)導(dǎo)出銨鈕是否禁用與啟用,因此在用戶控件寫一個(gè)帶參的方法:
復(fù)制代碼 代碼如下:

public void EnabledExportButton(bool enabled)
{
this.ButtonExport.Enabled = enabled;
}

還有就是為了把用戶控件的文本框的值帶結(jié)aspx.cs頁面,還需要寫一個(gè)修飾符為public的方法:
復(fù)制代碼 代碼如下:

public string GetAssetsNumber()
{
return this.TextBoxAssetsNumber.Text.Trim();
}

完整的ascx.cs代碼:
復(fù)制代碼 代碼如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Insus.NET;
public partial class System_Assets_Report_SearchForm : BaseUserControl
{
public delegate void SearchEventHandler(object sender, EventArgs e);
public delegate void ExportEventHandler(object sender, EventArgs e);
public event SearchEventHandler SearchClick;
public event ExportEventHandler ExportClick;
public string GetAssetsNumber()
{
return this.TextBoxAssetsNumber.Text.Trim();
}
public void EnabledExportButton(bool enabled)
{
this.ButtonExport.Enabled = enabled;
}
protected void Page_Load(object sender, EventArgs e)
{
}
protected void ButtonSearch_Click(object sender, EventArgs e)
{
if (SearchClick != null)
SearchClick(this, e);
}
protected void ButtonExport_Click(object sender, EventArgs e)
{
if (ExportClick != null)
ExportClick(this, e);
}
}

各個(gè)aspx頁,下面只列示一頁:
 
.aspx.cs代碼示例:
您可能感興趣的文章:
  • asp.net頁面master頁面與ascx用戶控件傳值的問題
  • asp.net 動(dòng)態(tài)添加多個(gè)用戶控件
  • asp.net 用戶控件讀取以及賦值
  • asp.net 用戶控件中圖片及樣式問題
  • asp.net動(dòng)態(tài)加載用戶控件,關(guān)于后臺(tái)添加、修改的思考
  • ASP.NET動(dòng)態(tài)加載用戶控件的實(shí)現(xiàn)方法
  • asp.net動(dòng)態(tài)載入用戶控件的方法
  • ASP.NET用戶控件技術(shù)

標(biāo)簽:蚌埠 衢州 廣元 棗莊 衡水 江蘇 萍鄉(xiāng) 大理

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《網(wǎng)頁(aspx)與用戶控件(ascx)交互邏輯處理實(shí)現(xiàn)》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    二手房| 庆城县| 连江县| 霍城县| 泉州市| 南皮县| 阳西县| 阿鲁科尔沁旗| 博客| 陇川县| 武强县| 斗六市| 行唐县| 左权县| 永济市| 富源县| 崇州市| 蛟河市| 化隆| 忻城县| 景泰县| 永仁县| 榆中县| 宜春市| 繁昌县| 枣庄市| 宜昌市| 保靖县| 赤水市| 社旗县| 象山县| 宣威市| 和平区| 漳浦县| 民丰县| 锡林郭勒盟| 金坛市| 扎鲁特旗| 嵊州市| 麻江县| 达日县|