2013-04-04 106 views
3

我已经阅读从MSDN的定义(见下文),这对我没有帮助。我动态添加gridviewrows到我的gridview,不知道什么是参数。GridViewRow构造函数参数,它们究竟是什么?

public GridViewRow(
    int rowIndex, 
    int dataItemIndex, 
    DataControlRowType rowType, 
    DataControlRowState rowState 
) 

的rowIndex类型:System.Int32的在GridView控制的 Rows集合的GridViewRow对象的索引。

dataItemIndex类型:System.Int32基础DataSet中的 中的DataItem的索引。

ROWTYPE类型:System.Web.UI.WebControls.DataControlRowType其中 DataControlRowType枚举值。

RowState的类型:System.Web.UI.WebControls.DataControlRowState的DataControlRowState枚举值的按位 组合。

+0

的rowIndex会给你当前插入行中的GridView – user1102001 2013-04-04 13:10:57

+0

@ user1102001并补充说,作为一个参数,如何影响新创建gridviewrow? – HOY 2013-04-04 13:18:30

+0

有很多方法可以将行添加到gridview,但rowindex不需要这样做 – user1102001 2013-04-04 13:24:17

回答

1

这些参数(这构造一般)确实很少需要使用。他们是创建一个GridView,它的行,完全手动 - 这是很不必要的,考虑到内置的这种控制功能强大的数据绑定功能。让我解释。

一般来说,您应该建立一个数据源(数据表,自定义类的一些通用的列表等),然后是数据源分配到GridView,并将其绑定。这可以自动设置RowIndex和DataItemIndex。它还支持许多其他方便的功能(排序,分页,编辑/删除)。请参阅GridView Web Server Control Overview 以了解此默认功能的详细分类。因此,我会说你应该将新行添加到你的数据源(不管那可能是什么),然后将更新的数据源设置为你的GridView的DataSource属性,并且调用GridView.DataBind()。您将拥有新的行,并且不必手动创建GridViewRow对象。

但是,要回答你的问题:

  • int rowIndex:索引(位置),你正在创建将在GridView占据一行。
  • int dataItemIndex:对这个数据的基础数据源的索引(数据表或泛型列表或者是你使用任何)。
  • DataControlRowType rowType:这是行的类型 - 数据中,页眉,页脚等(full list here)的行。
  • DataControlRowState rowState:“状态”行是 - 编辑模式,只读模式,等等(full list here)。
1
for example to add into gridview you can use datatable... 

     public static DataTable TBCONRCVD;  

     FindRowNo = GoodsRcvdGridview.Items.Count; 
     DataRow ROW = TBCONRCVD.NewRow(); 

     ROW["PRDCT_RCVD_PRDCT_CODE"] = TxtSearch.Text; 
     ROW["PRDCT_RCVD_QTY"] = txtQty.Text.Trim(); 
     ROW["PRDCT_RCVD_COST"] = TXTUNITPRCE.Text.Trim(); 
     ROW["PRDCT_CRNT_SLNG_PRCE"] = SELL_PRCE.ToString(); 
     ROW["PRDCT_RCVD_VAT_CODE"] = TXTVATCODE.Text.Trim(); 
     ROW["PRDCT_RCVD_DISC"] = txtDscntPrcntge.Text; 


     TBCONRCVD.Rows.Add(ROW); 
     GoodsRcvdGridview.DataSource = TBCONRCVD; 
     GoodsRcvdGridview.DataBind();