我有一个带有usercontrol的主页面。 usercontrol包含用于过滤主页面上的网格视图的不同过滤器。我在从主页回发的用户控件中保留文本框值时遇到问题。
当在主页面上调用CallBackAudit()(以及随后的StatistikStartLevs())时, 文本框值全部为空 。但是,当页面加载完毕后,文本框值全部填充。 btnLoadFilters_Click()工作正常。
我错过了什么样的观察状态?我想这与页面生命周期有关?
用户控件
protected void btnLoadFilters_Click(object sender, EventArgs e)
{
((IFilter)Parent.Page).SetDataSource(StatistikStartLevs(), "giros");
}
public DataView StatistikStartLevs()
{
DataTable dt = db.GetGiroStatsAll(((User)Session["currentUser"]).CompanyID, txtFrom.Text, txtTo.Text);
var selection = dt.AsEnumerable();
//Filters to come
return selection.AsDataView();
}
主页
private void CallBackAudit(object sender, ComponentArt.Web.UI.CallBackEventArgs e)
{
filter control = (filter)FindControl("filter");
gridGiros.DataSource = control.StatistikStartLevs();
gridGiros.DataBind();
gridGiros.Style["visibility"] = "visible";
gridGiros.RenderControl(e.Output);
}
public void SetDataSource(DataView dv, string source)
{
switch (source)
{
case "giros":
gridGiros.DataSource = dv;
gridGiros.DataBind();
break;
//More to come
}
}