首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GridView .DataBind RowDataBound未触发

GridView .DataBind RowDataBound未触发
EN

Stack Overflow用户
提问于 2009-01-23 21:10:24
回答 3查看 12.9K关注 0票数 2

我希望有人能帮助我!我有一个具有网格视图的用户控件(UC中有一个更新面板)

我在两个不同的页面上使用这个UC -在两个页面上,UC都在一个选项卡(ajax选项卡面板)上,选项卡在一个更新面板中。

在1个页面上,当我使用.DataBind() (而不是初始加载)时,它会触发RowDataBound事件,网格也会正确完成。

但是在第二个页面上(相同的代码!!),.DataBind不会触发RowDataBound事件,数据源也不会绑定/刷新。你知道为什么会发生这种情况吗?

EN

回答 3

Stack Overflow用户

发布于 2011-10-26 05:52:43

只有当GridView的数据在回发期间发生更改时,才会触发RowDataBound事件。该事件在速度上是短路的,因此它不会不必要地重新生成完全相同的数据。改用RowCreated事件来操作HTML -它在每次回发时都会触发,而不管数据是否已更改。

票数 3
EN

Stack Overflow用户

发布于 2009-01-23 21:35:17

首先检查您是否启用了缓存(在服务器上)。我还会使用断点来跟踪应用程序是否进入Page_Load事件。

如果启用了缓存,浏览器将缓存而不使用Page_Load,因此不使用DataBind()。

希望这能有所帮助

票数 0
EN

Stack Overflow用户

发布于 2012-12-06 15:02:54

我已经通过将这行代码放入

代码语言:javascript
复制
(TabContainer1_ActiveTabChanged(TabContainer1, null);) 

Page_Load事件中,不在!IsPostback事件中

代码语言:javascript
复制
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
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/474549

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档