您好 , 我把問題敘述如下 , 希望大家幫我看看:
主版頁面 AddData.master 包含一個 叫做 lbl_FunctionName 的 Label 控制項
<asp:Label ID="lbl_FunctionName" runat="server" Text="FunctionName" Width="150px"></asp:Label>
內容頁面 AddMyData.aspx.cs 檔 的 Page_Load 事件 程式碼如下:
/*
Label01 是 AddMyData 上已經放好的一個 Label 控制項
*/
Label myLabel = (Label)this.Master.FindControl("lbl_FunctionName");
if (myLabel != null)
{
Label01.Text = myLabel.Text;
}
else
{
Label01.Text = "No Value";
}
但是當 AddMyData 個頁面做 Page_Load 的時候, Label01 卻 出現 "No Value"
代表在 在主版頁面 AddData.master 裡找不到 lbl_FunctionName 這一個控制項
可是在 AddMyData.aspx 的畫面上卻可以看見 lbl_FunctionName 這個控制項
很多示範資料都是用 <script runat=server></script> 把 Page_Load 包起來放在 aspx 檔裡,部過這樣感覺起來程式碼都被看光光,很沒有安全性。
所以我是寫在 cs 檔裡,程式碼可以被編譯在 dll 裡,這樣的作法應當比較好是吧?
AddData.master 有套一個 Site.master 的主版頁面,也就是說 AddMyData 是套一個巢狀的主板頁面(Site.master->AddData.master)
AddMyData.aspx 的 MasterPageFile="~/GlobalUsing/TempletePage/AddData.master"
我想做的是 在 AddMyData.aspx 這個內容頁面去控制 主版頁面 AddData.master 的控制項
查了很多資料都試不成功,有人可以告訴我是哪邊出錯嗎?
謝謝!
寫法看起來沒啥問題
如果是在單層的主版頁面應該可以成功才對
你可以在AddMyData頁面用"檢視原始檔"看一下
lbl_FunctionName 這個控制項的ID還是叫lbl_FunctionName嗎
是不是因為巢狀主板頁面的關係被改了名稱之類的