GridViewコントロールRowDataBoundイベントで列のフィールド値を取得するためのいくつかの方法!!


C萼code

         
         
         
         
protected void GridView1_RowDataBound( object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { e.Row.Attributes.Add( " onclick " , " javascript:alert(' ID : " + DataBinder.Eval(e.Row.DataItem, " CID " ) + " ') " ); } }
現在の行をクリックして、その行の指定フィールドの値を取得します.CIDは欲求値のフィールドのIdです.
 
 
 
GridViewはASP.NETの機能が強いデータ表示コントロールで、RowDataBoundイベントは私達に便利な制御行、列データのルートを提供してくれました.現在の行のデータ列を取得するには、以下のような方法があります.1.Cels[x].Txt.     列のセルのテキスト値から取得します.この方法は簡単で高効率で、最もよく使われていますが、機能は単純です.この方法にはいくつかの欠点があります.     (1)隠し属性が設定されたデータ列の値を取得できませんでした.取った値は「」です.     (2)HTMLで定義されたデータ列しか取得できません.データソースの現在のデータ行のすべてのフィールド列を調べることができません.一般的に、HTMLでGridViewを設定するフィールドの列の数は、データソースの実際のフィールドの数よりも小さい傾向があります.これは、ビジネスロジックの観点から見ると、すべてのフィールドがページに表示されるわけではないからです.表示されていないフィールドを使用する必要がある場合、この方法は直接に需要を満たすことができません.2.e.Row.Cells[x].FindControl(「Yoursotrol Name」).     これはセル内のサーバーコントロールを検索して、そのデータ値を取得します.このようにセル内のサーバコントロールを操作できます.この方法は、テンプレート列のデータまたはコントロールを処理するために使用されます.3. (DataRowView)e.Row.DataItem.Row.ItemAray[x].ToString()     この方法の中心はe.Row.DataItemであり、GridViewの行データセットであり、Objectタイプであり、それをDataRowViewタイプに変換すると、より多くの操作方法が得られます.このデータセットはデータソースの現在の行のすべてのフィールド列を表し、ItemAray[x]は現在の行のすべてのフィールド列の配列オブジェクトであり、インデックスxによって任意のフィールド値を得ることができます.この方法の強さは、データソースのすべてのフィールドを検索することができます.4. DataBinder.Eval(e.Row.DataItem).ToString().     この方法は依然としてe.Row.DataItemに基づいており、データソースの任意のフィールド値をより迅速に取得することが特徴であり、DataBinder.Eval()を使用しているので、フィールド名を間違えないように注意が必要である.5.e.Row.DataItemをカスタムタイプに変換し、データの類型化を実現します.     たとえば:    DSRequest Tracking.TB_Request TrackingRowrtrow=(DSRequest Tracking.TBリクエットTracking Row)((DataRowView)e.Row.DataItem)Row;     Request Status Dropdown List 1.Selected Value=torow.Stuts ID.ToString()     DSRequest TrackingはDSRequest Tracking.xsdファイルを通じて工事中にカスタマイズされた強いタイプのDataSetで、TB_.Request TrackingRowは、強いタイプのためにVSが自動的に生成するデータラインオブジェクトの作成方法です.この方法により,類型化データの広範な応用が実現された.データのタイプ化の利点が多く、明らかに、パラメータの多くを置き換えるために、タイプのデータを送ることです.また、フィールド名のスペルエラーが発生することはありません.総括して、以上の方法はそれぞれ長所があって、適切に選んで使って、きっと開発の過程の中の異なっている需要を満たすことができます.