我希望有人能帮助我!我有一个具有网格视图的用户控件(UC中有一个更新面板)
我在两个不同的页面上使用这个UC -在两个页面上,UC都在一个选项卡(ajax选项卡面板)上,选项卡在一个更新面板中。
在1个页面上,当我使用.DataBind() (而不是初始加载)时,它会触发RowDataBound事件,网格也会正确完成。
但是在第二个页面上(相同的代码!!),.DataBind不会触发RowDataBound事件,数据源也不会绑定/刷新。你知道为什么会发生这种情况吗?
发布于 2011-10-26 05:52:43
只有当GridView的数据在回发期间发生更改时,才会触发RowDataBound事件。该事件在速度上是短路的,因此它不会不必要地重新生成完全相同的数据。改用RowCreated事件来操作HTML -它在每次回发时都会触发,而不管数据是否已更改。
发布于 2009-01-23 21:35:17
首先检查您是否启用了缓存(在服务器上)。我还会使用断点来跟踪应用程序是否进入Page_Load事件。
如果启用了缓存,浏览器将缓存而不使用Page_Load,因此不使用DataBind()。
希望这能有所帮助
发布于 2012-12-06 15:02:54
我已经通过将这行代码放入
(TabContainer1_ActiveTabChanged(TabContainer1, null);) 在Page_Load事件中,不在!IsPostback事件中
protected void Page_Load(object sender, EventArgs e)
Page.Title = ConfigurationManager.AppSettings["PageTitle"].ToString().Trim() + " Project Type";
if (!IsPostBack)
{
if (Request.Params["stidx"] != null && Request.Params["stidx"].ToString().Trim() != "")
{
if (Request.Params["stidx"].ToString().Trim() == "0") //have to make project type selected in left
{
NullAllDate_Except_ProjectType();
TabContainer1.ActiveTabIndex = 0;
LeftBar.var_data_to_show = "";
}
else if (Request.Params["stidx"].ToString().Trim() == "1") //have to make Modules selected in left
{
NullAllDate_Except_Module();
TabContainer1.ActiveTabIndex = 1;
LeftBar.var_data_to_show = "";
}
else if (Request.Params["stidx"].ToString().Trim() == "2") //have to make Activity selected in left
{
NullAllDate_Except_Activity();
TabContainer1.ActiveTabIndex = 2;
LeftBar.var_data_to_show = "";
}
else if (Request.Params["stidx"].ToString().Trim() == "3") //have to make Systems selected in left
{
NullAllDate_Except_Systems();
TabContainer1.ActiveTabIndex = 3;
LeftBar.var_data_to_show = "";
}
else if (Request.Params["stidx"].ToString().Trim() == "4") //have to make Module Headers selected in left
{
NullAllDate_Except_ModuleHeaders();
TabContainer1.ActiveTabIndex = 4;
LeftBar.var_data_to_show = "";
}
else
{
NullAllDate_Except_ProjectType();
LeftBar.var_data_to_show = "";
}
}
else
{
NullAllDate_Except_ProjectType();
LeftBar.var_data_to_show = "";
}
}
if (IsPostBack)
{
if (MyScriptManager.IsInAsyncPostBack)
{
//LeftBar.var_data_to_show = true;
LeftBar.var_data_to_show = GetModuleName(TabContainer1.ActiveTabIndex.ToString());
}
}
TabContainer1_ActiveTabChanged(TabContainer1, null); //this is required here, otherwise onrow databound is not working on !Postback
}https://stackoverflow.com/questions/474549
复制相似问题