PostBackUrl 使用者控制項頁面傳值總結

2021-08-24 18:39:39 字數 2121 閱讀 4977

postbackurl 使用者控制項頁面傳值總結

今天在除錯郵件傳送的時候,發現了get傳遞資料的最大值問題,檢視

了有關資料說get方式最大的傳遞值為2k(包括url字元)。

因此只能修改**,換別的方式。本來計畫使用post方式,但是post方

式無法獲取使用者控制項中的資訊,所以此方法作罷。

以下介紹使用asp.net 2.0的新特性postbackurl進行頁面見傳值。

一 呼叫普通控制項資訊

1 源頁面

text="posttoanotherpage" postbackurl="~/test.aspx" />

2 被提交的頁面

如果是普通的控制項只需要以下方法即可:

if (previouspage != null)

二 呼叫使用者控制項資訊

1 繼承方式

(1) postdatabase.cs

using system.collections.generic;

///

/// postdataurl方式頁面傳值抽象類

///

public abstract class postdatabase : system.web.ui.usercontrol

public abstract string checkedorgnamestring

public abstract listcheckedorgcodelist

public abstract listcheckedorgnamelist

}(2) usercontrol.ascx.cs**

public partial class controls_usercontrol :postdatabase

}///

/// 獲取treeview選中的單位名稱

///

public override string checkedorgnamestring

}///

/// 獲取treeview選中的單位**

///

public override listcheckedorgcodelist

}///

/// 獲取treeview選中的單位名稱

///

public override listcheckedorgnamelist}}

(3) test.aspx.cs**

///

/// 獲取父頁面的單位資訊

///

protected string orgcodes

if (previouspage == null)

postdatabase hid = previouspage.form.findcontrol

("contentplaceholder1").findcontrol("orgtree") as

postdatabase;

if (hid == null)

else}}

注意:如果有模版頁巢狀則使用

postdatabase hid = previouspage.form.findcontrol

("contentplaceholder1").findcontrol("orgtree") as

postdatabase;

如果沒有則使用

postdatabase hid = previouspage.form.findcontrol("orgtree") as

postdatabase;

2 例項類方式

(1) source.aspx.cs**

定義獲取使用者控制項資料的屬性

public string getorgcodes

else}}

(2) test.aspx頁

<%@ previouspagetype virtualpath="source.aspx" %>

使用previouspagetype註冊後,可以再後台**中使用智慧型提示(如果

沒有智慧型提示,編譯後再試就有了)

(3) test.aspx.cs**

///

/// 獲取父頁面的單位資訊

///

protected string orgcodes

}

PostBackUrl在MasterPage下出錯

昨天,在程式中採用了postbackurl,開始,頁面沒有應用masterpage,用previouspage.findcontrol很正常,後來,頁面應用了masterpage,就會出現找不到物件的錯誤。解決方法是在搜尋控制項的時候考慮到masterpage的存在,從那裡開始找,類似這樣 stri...

PostBackUrl跨頁傳值

頁面和頁面之間傳引數可以通過url,也可以通過form來傳值,今天總結的是另外一種,跨頁傳參。伺服器button有乙個postbackurl屬性,這個是用來回傳的,直接寫 算了。一 請求頁面 html page language c autoeventwireup true codebehind r...

使用者控制項用法

namespace usecontroltes.newfolder1 set private void page load object sender,system.eventargs e region web 窗體設計器生成的 override protected void oninit even...