【问题标题】:Calling RowDataBound Event when the page is refreshed页面刷新时调用 RowDataBound 事件
【发布时间】:2015-05-14 17:46:30
【问题描述】:

我有一个gridview,只有当它不是回发时我才绑定它,但是我想在回发时调用函数RowDataBound。 我该怎么做呢

 protected void gridview1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowIndex == -1)
        {
        //Some logic
        }
    }

protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            LoadGridView();
        }
        else
        {
            gridview1_RowDataBound(null, null); // Object reference not set to an instance of an object 
        }
    }

我怎么称呼它?

【问题讨论】:

  • 调用RowDataBound的目的是什么?问题是调用它不是作为事件处理程序,而是作为一个函数没有多大意义。它实际上在 gridview 被数据绑定时有用,否则你无权访问事件参数、数据项等。确保调用它确实是你想要的
  • 也许将您的if (!IsPostBack) 移动到gridview1_RowDataBound 事件处理程序而不是Page_Load 事件处理程序中。
  • @Andrei 我获得了网格视图的所有数据,但我想在第一行添加一个文本框,我尝试了几种方法,但我只能通过 rowdatabound 来完成。因此,如果行数据绑定中的索引为 -1,那么我添加文本框。
  • 好吧,我不能说我完全理解这一点,但一个快速的解决方法是将if (e.Row.RowIndex == -1) 替换为if (e == null),这会导致您的引用为空。但是,我再次高度怀疑您这样做是错误的 - 只有在 row 实际是数据绑定时才应该调用 rowdatabound
  • @Andrei 其实我是在第一行插入一个文本框,如果 e.Row.RowIndex == -1 ,那么 e.Row.Cells[0].Controls.Add(Textbox1); 所以我需要传递 gridview1 对象。

标签: c# asp.net gridview rowdatabound


【解决方案1】:

如果您基于 Rowdatabound 中的任何条件创建任何动态列,那么,如果不满足这些条件,则使网格不具有这些动态列。它解决了我的问题。希望它会对某人有所帮助。

【讨论】:

    猜你喜欢
    • 2014-01-27
    • 1970-01-01
    • 2011-04-16
    • 2011-06-17
    • 2018-12-14
    • 2011-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多