GridViewコントロールRowDataBoundイベントでカラムフィールドの値を取得する方法
5876 ワード
フロント:
私がやったのは、現在の行をクリックして、その行の指定フィールドの値を取得することです. DataBinder.Eval(e.Row.DataItem, "CODE_T_S");取得するカラム名.
GridViewはASP.NETの強力なデータ表示コントロールは、RowDataBoundイベントが行や列のデータを容易に制御する方法を提供します.現在のローのデータ列を取得するには、以下の方法を実践的にまとめます.1.Cells[x].Txt.列セルのテキスト値から取得します.この方法は簡単で高率で,最もよく用いられるが,機能は単純である.この方法では、(1)非表示属性が設定されているデータ列の値を取得できず、取得した値は「」(空)であるという欠点があります.(2)HTMLで定義されたデータ列のみを取得でき、データソースの現在のデータ行のすべてのフィールド列をクエリーできません.一般に、HTMLでGridViewを設定するフィールド列の数は、ビジネスロジックの観点から、すべてのフィールドがページに表示されるわけではないため、データ・ソースの実際のフィールド数よりも少ないことが多い.表示されていないフィールドを使用する必要がある場合、この方法は直接需要を満たすことはできません.2. e.Row.Cells[x].FindControl("YourcontrolName").これは、セル内のサーバーコントロールを検索してデータ値を取得します.この方法では、セル内のサーバコントロールを操作できます.この方法は、テンプレート列のデータまたはコントロールの処理に一般的に使用されます.
((System.Web.UI.WebControls.Label)(e.Row.FindControl("lblSurplusMoney"))).Text = strSurplusMoney;3. (DataRowView)e.Row.DataItem).Row.ItemArray[x].ToString().この法の核心はe.Row.GridViewの行データセットであり、Objectタイプであり、DataRowViewタイプに変換すると、より多くの操作方法が得られます.このデータセットは、データソースの現在の行のすべてのフィールド列を表し、ItemArray[x]は現在の行のすべてのフィールド列の配列オブジェクトであり、インデックスxによって任意のフィールド値を得ることができる.この方法の強みは、データ・ソースのすべてのフィールドをクエリーできることです.4. DataBinder.Eval(e.Row.DataItem, "YourDataFieldName").ToString().この方法はe.Rowに基づいている.DataBinderを使用するため、データソースの任意のフィールド値をより迅速に取得することが特徴です.Eval()は、フィールド名を間違えないように注意してください.5.e.Row.DataItemをカスタムタイプに変換し、データ型化を実現します.例えば、DSRequestTracking.TB_RequestTrackingRow rtrow=(DSRequestTracking.TB_RequestTrackingRow)((DataRowView)e.Row.DataItem).Row; RequestStatusDropDownList1.SelectedValue = rtrow.StatusID.ToString();ここでDSRequestTrackingは、DSRequestTrackingである.xsdファイルプロジェクトでカスタマイズされた強力なタイプのDataSet,TB_RequestTrackingRowは、VSがこの強力なタイプのデータ行オブジェクトを自動的に作成する方法です.この法により,タイプ化データの広範な応用を実現した.データ型化の利点は多く、多くのパラメータの代わりに、フィールド名のスペルミスが二度と発生しないことが明らかになった.GridViewコントロールRowDataBoundイベントでカラムフィールドの値を取得するには、いくつかの方法があります!!!
<asp:TemplateField HeaderText=" | ">
<ItemTemplate>
<asp:Label ID="lblSurplusMoney" runat="server" Text=""></asp:Label>
</ItemTemplate>
</asp:TemplateField>
/// <summary>
///
/// </summary>
/// <param name="sender"> </param>
/// <param name="e"> </param>
protected void gvDataList_RowDataBound(object sender, GridViewRowEventArgs e)
{
string strKeyGName = txtGName.Text.Trim();
if (e.Row.RowType == DataControlRowType.DataRow)
{
//
var strGnameTitle = " ";
var strGnameUrl = GetServerPath() + "/HsCode/HscodeInfoIndex.aspx?IsDlg=1&HSCODE=" +
DataBinder.Eval(e.Row.DataItem, "CODE_T_S");
var hyGname = e.Row.FindControl("hyCodeTs") as HyperLink;
hyGname.Attributes.Add("onclick", string.Format("OpenWindow('{0}','{1}',{2},{3});",
strGnameTitle, strGnameUrl, "1000", "600"));
}
}
私がやったのは、現在の行をクリックして、その行の指定フィールドの値を取得することです. DataBinder.Eval(e.Row.DataItem, "CODE_T_S");取得するカラム名.
GridViewはASP.NETの強力なデータ表示コントロールは、RowDataBoundイベントが行や列のデータを容易に制御する方法を提供します.現在のローのデータ列を取得するには、以下の方法を実践的にまとめます.1.Cells[x].Txt.列セルのテキスト値から取得します.この方法は簡単で高率で,最もよく用いられるが,機能は単純である.この方法では、(1)非表示属性が設定されているデータ列の値を取得できず、取得した値は「」(空)であるという欠点があります.(2)HTMLで定義されたデータ列のみを取得でき、データソースの現在のデータ行のすべてのフィールド列をクエリーできません.一般に、HTMLでGridViewを設定するフィールド列の数は、ビジネスロジックの観点から、すべてのフィールドがページに表示されるわけではないため、データ・ソースの実際のフィールド数よりも少ないことが多い.表示されていないフィールドを使用する必要がある場合、この方法は直接需要を満たすことはできません.2. e.Row.Cells[x].FindControl("YourcontrolName").これは、セル内のサーバーコントロールを検索してデータ値を取得します.この方法では、セル内のサーバコントロールを操作できます.この方法は、テンプレート列のデータまたはコントロールの処理に一般的に使用されます.
((System.Web.UI.WebControls.Label)(e.Row.FindControl("lblSurplusMoney"))).Text = strSurplusMoney;3. (DataRowView)e.Row.DataItem).Row.ItemArray[x].ToString().この法の核心はe.Row.GridViewの行データセットであり、Objectタイプであり、DataRowViewタイプに変換すると、より多くの操作方法が得られます.このデータセットは、データソースの現在の行のすべてのフィールド列を表し、ItemArray[x]は現在の行のすべてのフィールド列の配列オブジェクトであり、インデックスxによって任意のフィールド値を得ることができる.この方法の強みは、データ・ソースのすべてのフィールドをクエリーできることです.4. DataBinder.Eval(e.Row.DataItem, "YourDataFieldName").ToString().この方法はe.Rowに基づいている.DataBinderを使用するため、データソースの任意のフィールド値をより迅速に取得することが特徴です.Eval()は、フィールド名を間違えないように注意してください.5.e.Row.DataItemをカスタムタイプに変換し、データ型化を実現します.例えば、DSRequestTracking.TB_RequestTrackingRow rtrow=(DSRequestTracking.TB_RequestTrackingRow)((DataRowView)e.Row.DataItem).Row; RequestStatusDropDownList1.SelectedValue = rtrow.StatusID.ToString();ここでDSRequestTrackingは、DSRequestTrackingである.xsdファイルプロジェクトでカスタマイズされた強力なタイプのDataSet,TB_RequestTrackingRowは、VSがこの強力なタイプのデータ行オブジェクトを自動的に作成する方法です.この法により,タイプ化データの広範な応用を実現した.データ型化の利点は多く、多くのパラメータの代わりに、フィールド名のスペルミスが二度と発生しないことが明らかになった.GridViewコントロールRowDataBoundイベントでカラムフィールドの値を取得するには、いくつかの方法があります!!!