我有一个 web 用户控件 ( OrderDefinition.ascx
),它有一个下拉列表 ( ddl_CustomerCode
),由 web 用户控件的 page_load 函数填充
public void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ddl_CustomerCode.DataSource = OrderDefinitionData.GetCustomers();
ddl_CustomerCode.DataTextField = "CustomerCode";
ddl_CustomerCode.DataValueField = "CustomerName";
ddl_CustomerCode.DataBind();
}
}
在我的 default.aspx 页面中,我动态添加了这个 Web 用户控件
Control x = LoadControl("Controls/OrderDefinition.ascx");
Panel1.Controls.Add(x);
我想从我的 default.aspx 将参数传递给这个 web 用户控件,我想出了使用会话或视图状态或缓存来使用的想法。所以现在我的 default.aspx 看起来像
Session["myParam"] = "customerNo1";
Control x = LoadControl("Controls/OrderDefinition.ascx");
Panel1.Controls.Add(x);
我的 Page_Load 看起来像
public void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
string myParam = Session["myParam"];
ddl_CustomerCode.DataSource = OrderDefinitionData.GetCustomers(myParam);
ddl_CustomerCode.DataTextField = "CustomerCode";
ddl_CustomerCode.DataValueField = "CustomerName";
ddl_CustomerCode.DataBind();
}
}
问题是我不确定我上面的编码方式,我应该相信这个架构吗?如果这是将参数传递给 Web 用户控件的正确方法,请澄清我。