none
FooterRow可访问时机 RRS feed

  • 问题

  • 在开发中需要对GridView的FooterRow行进行操作,根据MSDN文档中的介绍在该GridView的DataBound事件处事FooterRow时,产生异常。调试发现FooterRow为null.FooterRow的使用时机是怎样的?
    2011年6月23日 16:13

答案

  • GridView中与数据绑定相关的事件执行顺序是DataBinding,每一行的RowCreated,每一行的RowDataBound,然后是DataBound。在DataBound事件处理程序中理论上如果有脚注行则FooterRow一定不为null;如果为null则GridView没有内容不可见,或是GridView中控件脚注行不显示。

    • 已标记为答案 19711024 2011年6月24日 16:32
    2011年6月24日 16:32

全部回复

  • 你好

    或者你可以嘗試先檢查他是不是FootRow才進得動作

    E.G.

     

    protected void myGrid_RowDataBound(object sender, GridViewRowEventArgs e)
    {
     if (e.Row.RowType == DataControlRowType.Footer)
     {
      if (e.Row.DataItem == null)
      {
        //做一些動作
      }
     }
    }

     

    Please correct me if my concept is wrong


    Chi
    2011年6月23日 21:11
  • 在开发中需要对GridView的FooterRow行进行操作,根据MSDN文档中的介绍在该GridView的DataBound事件处事FooterRow时,产生异常。调试发现FooterRow为null.FooterRow的使用时机是怎样的?


    或者在调用GridView.DataBind();之后使用:GridView1.FooterRow——

    1)GridView1.FooterRow.FindControl("xxx"):适用于带有FooterTemplate的。

    2)GridView1.FooterRow.Cells[索引].Text:适用于直接绑定的GridView。


    如果你有其它意见或私下交流,请发送邮件到:maledong@qq.com;或者请讨论
    下载MSDN桌面工具(Vista,Win7)
    下载Technet桌面小工具(Vista,Win7)
    慈善点击,点击此处
    2011年6月24日 5:53
  • 在开发中需要对GridView的FooterRow行进行操作,根据MSDN文档中的介绍在该GridView的DataBound事件处事FooterRow时,产生异常。调试发现FooterRow为null.FooterRow的使用时机是怎样的?


    或者你可以在GridView1.Databind()之后进行:

    GridView1.FooterRow.FindControl:适用于带有FooterTemplate的FooterRow。

    GridView1.FooterRow.Cells[索引].Text:适用于一般绑定的GridView。


    如果你有其它意见或私下交流,请发送邮件到:maledong@qq.com;或者请讨论
    下载MSDN桌面工具(Vista,Win7)
    下载Technet桌面小工具(Vista,Win7)
    慈善点击,点击此处
    2011年6月24日 5:54
  • 这是能访问到脚注行的一种方式,但只有这一种方式吗?如果如此那么在GridView控件设置FooterRow属性又有何意义。看来还有其它的方式能够直接通过FooterRow属性来操作脚注行,而不是用e.Row.RowType==DataControlRowType.FooterRow方式来使用
    2011年6月24日 9:17
  • 这是能访问到脚注行的一种方式,但只有这一种方式吗?如果如此那么在GridView控件设置FooterRow属性又有何意义。看来还有其它的方式能够直接通过FooterRow属性来操作脚注行,而不是用e.Row.RowType==DataControlRowType.FooterRow方式来使用

    查看我的回答,在绑定之后直接使用GridView1.FooterRow……什么的。
    如果你有其它意见或私下交流,请发送邮件到:maledong@qq.com;或者请讨论
    下载MSDN桌面工具(Vista,Win7)
    下载Technet桌面小工具(Vista,Win7)
    慈善点击,点击此处
    2011年6月24日 9:20
  • 在主问题已经提到是在GridView的DataBound事件中使用GridView.FooterRow属性,分析GridView控件的源代码发现事件DataBound的产生是在GridView控件调用了DataBind()方法触发的,然而在DataBound事件处理程序中仍然无法访问GridView.FooterRow,即FooterRow为null.

    2011年6月24日 14:10
  • GridView中与数据绑定相关的事件执行顺序是DataBinding,每一行的RowCreated,每一行的RowDataBound,然后是DataBound。在DataBound事件处理程序中理论上如果有脚注行则FooterRow一定不为null;如果为null则GridView没有内容不可见,或是GridView中控件脚注行不显示。

    • 已标记为答案 19711024 2011年6月24日 16:32
    2011年6月24日 16:32