我有一个名为test.aspx的aspx页面,它继承了一个母版页。母版页有一个名为lcont.ascx的usercontrol文件,它有一个树视图,其节点填充了来自数据库和contentpalceholder的数据。
contentplaceholder是我想根据点击的treenode显示数据库中的数据的地方,因此在其中定义了一个Datalist。它相应的.cs文件给出了sqlconnection和query来显示page_load中的数据。
所以每当我点击test.aspx中的treenode时,都会调用相应的.cs文件的page_load。但我想要的是调用usercontrol文件lcont.ascx的.cs文件,以便我可以将id传递给查询test.aspx.cs的.cs文件。
是否可以在page_load之前从另一个页面调用函数? 或者是否可以在浏览自己的.cs文件之前转到另一个文件的.cs文件?
以下是来自lcont.ascx.cs
的代码 protected void my_tv_SelectedNodeChanged(object sender, EventArgs e)
{
TreeView tv = sender as 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");
}
}
我想在test.aspx.cs文件的page_load之前调用此函数。
test.aspx.cs文件的代码是
protected void Page_Load(object sender, EventArgs e)
{
display();
}
public void display()
{
string str = hdn.Value;
slbl.Text = "value is" + str;
//var a = Session["mySvar"];
var a = 2;
sq.connection();
SqlCommand cmd = new SqlCommand("select * from sub_catTbl where sid='" + a + "' ", sq.con);
SqlDataReader sd = cmd.ExecuteReader();
mydatalist.DataSource = sd;
mydatalist.DataBind();
sq.con.Dispose();
sq.con.Close();
}
我需要在此page_load调用之前调用该函数,以便我可以给出sid =“我在点击lcont.ashx.cs中可用的treenode后获得的变量值”
答案 0 :(得分:2)
部分回答here,但this answer实际上更好:您不应该从其他网页调用活动。
创建一个处理TreeWiew事件的类(从另一个上下文访问它),或者重新考虑你的应用程序。
答案 1 :(得分:1)
使用VB.net,在页面初始化
Private Sub _Default_Init(sender As Object, e As EventArgs) Handles Me.Init
display()
End Sub
这是C#代码:
protected void Page_Init(object sender, EventArgs e)
{
display();
}