MIS2000 Lab. -- ASP.NET学习&分享 / ASP.NET案例精编(清华大学出版社)
您好,我来自台湾。很高兴与各位分享一些成果。希望对您有帮助。出版书籍是「ASP.NET案例精编 / 清华大学出版社」。

DataBinding?资料绑定? #7 -- 伤脑筋的 GridView加总、小计(原来如此 / 范例下载)

http://www.dotblogs.com.tw/mis2000lab/archive/2010/10/12/databinding_7_gridview_rowcreated.aspx

 

 

 

透过上一篇文章的问题,DataBinding?资料绑定? #6 -- 伤脑筋的 GridView加总、小计 (2010-10-28 17:48)

我们可以学到更多东西。

 

只会跟着书本、老师的讲解来作,

往往不如自己遇上问题,然后仔细思考,去破解与了解,更能学到东西!

 

错误!是自己最好的老师!!

也是找出自己「盲点」的最好机会!

==========================================================

 

 

我们回头重新复习一下,MSDN网站的解说是最好的参考数据。

 

GridView各种事件 -- http://msdn.microsoft.com/zh-tw/library/hf8xwy0t.aspx

 

  • RowDataBound -- 资料列系结GridView 控件中的数据时发生。(上一篇文章,我们使用这个事件来作)
  • RowCreated -- 建立 GridView 控件中的数据列时发生。

 

 

把程序写到 GridView1_RowCreated事件,就搞定了。

请您比较一下两个事件的不同。

 

      请参阅下一篇文章的说明(GridView的 RowCreated事件与 RowDataBound事件的小差异

 

-------------------------------------------------------------------------------------------------------------------

 

如果您还坚持使用 GridView1_RowDataBound事件来作,可以参考以下方法:

(两种方法,任选其一即可)

 

1.  HTML原始文件,改用 Web控件,代替「DataBinding」的公用变数,例如:  <% # 公用变量名称%>

      透过 .FindControl()方法来抓取 GridView里面的、样版的「Web控件」,就会正确!!

      请看下面的附档 (可下载), 范例4_2就是如此。

 

2.  GridView1_RowDataBound事件里面,不再使用这段 if判别式

1         //if (e.Row.RowType == DataControlRowType.DataRow)
2         //...{
3
4         //}

 

自己计算循环数(for loop),也可以正确运作。

 

 

 

我相信还有其它方法可以作,

也一定有更好的解释,让大家理解上一个问题的错误。

 

不嫌弃的话,想听听大家的见解。

 

 

 

                VB C#范例下载:DataBinding_GridView加总.rar

 

posted on 2010-10-28 17:53  MIS2000 Lab.  阅读(269)  评论(0编辑  收藏  举报


ASP.NET案例精编——适用于VS 2005/2008(配光盘)
 

当当网购买 http://product.dangdang.com/product.aspx?product_id=20583373&ref=search-1-pub