問題很簡單,我可以在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之前的用戶控件,我已經這樣做了。但是當我運行該程序時,它說
未將對象引用設置爲對象的實例。
我該怎麼辦?
你的意思是說父母面前孩子來了。 –
我不認爲它可能 –
你不能讓孩子沒有父母......這遠遠超出了編程。你真的想做什麼? – Sayse