2014-07-15 19 views
0

問題很簡單,我可以在aspx頁面的page_load之前調用usercontrol的page_load?我可以在aspx頁面的page_load事件之前調用usercontrol的page_load事件嗎?

編輯

它不可能父母的Page_Load前致電孩子的Page_Load事件。

我有這個aspx類叫just4test測試puropse。 它的ASPX代碼:

<body> 
    <form id="form1" runat="server"> 
    <uc1:lcont ID="lcont1" runat="server" /> 
    <div> 

    </div> 
    </form> 

正如你可以看到它使用的是用戶控件文件。

而其背後的代碼是:

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (Page.IsPostBack) 
    { 
     lcont1.my_tv_SelectedNodeChanged(sender, e); 
    } 
} 

現在用戶控件:

public partial class lcont : System.Web.UI.UserControl 
{ 
sql_con sq = new sql_con(); 
protected void Page_Load(object sender, EventArgs e) 
{ 

    if (!Page.IsPostBack) 
    { 
     bind_data(); 
    } 
} 

public void mytry() 
    { 
     Console.WriteLine("helo"); 
    } 
public void bind_data() 
{ 
    main_cat mcobj = new main_cat(); 
    List<main_cat> mclist = new List<main_cat>(); 
    mclist = mcobj.get_mcatlist(); 

    populatetree(mclist); 
} 

public void populatetree(List<main_cat> mytnode) 
{ 
    TreeNode parentnode = null; 
    foreach (main_cat mc in mytnode) 
    { 
     parentnode = new TreeNode(mc.Cname, mc.Cid.ToString()); 
     foreach (sub_cat sc in mc.scl) 
     { 
      TreeNode cnode = new TreeNode(sc.PRODUCT, sc.SID.ToString()); 
      parentnode.ChildNodes.Add(cnode); 
     } 
     parentnode.Collapse(); 
     my_tv.Nodes.Add(parentnode); 
    } 
} 

public void my_tv_SelectedNodeChanged(object sender, EventArgs e) 
{ 
    TreeView tv = sender as TreeView; 
    //TreeView tv = new TreeView(); 
    var selectedN = tv.SelectedNode; 

    if (selectedN.Parent != null) 
    { 
     var id = tv.SelectedNode.Value; 
     var name = tv.SelectedNode.Text; 
     //Session["mySvar"] = id; 

     ScriptManager.RegisterStartupScript(this, this.GetType(), "nething", "show("+id+")", true); 
    } 
    else 
    { 
     //Response.Redirect("test.aspx"); 
    } 


} 

}

我需要調用函數my_tv_SelectedNodeChanged(發件人,E); just_test頁面的page_load之前的用戶控件,我已經這樣做了。但是當我運行該程序時,它說

未將對象引用設置爲對象的實例。

我該怎麼辦?

+0

你的意思是說父母面前孩子來了。 –

+0

我不認爲它可能 –

+0

你不能讓孩子沒有父母......這遠遠超出了編程。你真的想做什麼? – Sayse

回答

0

Page_Load no,但OnInit發生之前。取決於你的實際問題,你可以在那裏移動你的邏輯。

或者呼叫的用戶控制的公共方法,你做任何事情之前在父頁Page_Load事件

Page Life Cycle

+0

我已經更新了問題。並作爲你可以看到我有任何其他的東西之前調用公共方法的用戶控制,這是我需要的,但它不工作.HELP! – suman

+0

或者我可以在page_load之後調用相同的aspx函數嗎? – suman

+0

很難猜到你在做什麼...... 從你的代碼中,我們可以看到當你第一次加載頁面(!Page.IsPostBack)時,你在用戶控件中綁定了你的數據,然後你做了什麼在你的頁面被髮布後,你的主頁會觸發treelist的選擇更改事件,但這沒有任何作用,因爲沒有真正改變(我的猜測) –

相關問題