2016-07-06 2 views
0

私はforループを使用してVB.Netを使用してDevExpress ASP.Net WebForms GridViewに列を追加しています。列1つの値を参照するハイパーリンクを持っている...私はプログラム的に別の列の値にハイパーリンクを設定する必要がありますつまり、カラム3人のニーズ別の列へのハイパーリンク参照DevExpress Gridview ASP.Net Webform

Dim newColumn As New DevExpress.Web.GridViewDataHyperLinkColumn 
newColumn.PropertiesHyperLinkEdit.NavigateUrlFormatString = "TrendView.aspx?CurrentID={0}" 

:私は、同じ列の値を参照するハイパーリンクを取得することができました同じ行。ランタイム中にVBまたはC#を使用して、その行の別の列にどのようにアクセスしますか?

答えて

1

ASPXとしてあなた移入グリッドロジックを変更

https://www.devexpress.com/Support/Center/Example/Details/E308

あなたの問題を解決するために、このURLを参照してください。

<dx:ASPxGridView ID="ASPxGridView1" runat="server"></dx:ASPxGridView> 

CS

protected void Page_Init(object sender, EventArgs e) 
{ 
    ASPxGridView1.KeyFieldName = "ID"; 
    ASPxGridView1.DataSource = GetData(); 
    if (!IsPostBack && !IsCallback) 
    { 
     PopulateColumns(); 
     ASPxGridView1.DataBind(); 
    } 
} 

public DataTable GetData() 
{ 
    DataTable Table = new DataTable(); 
    Table.Columns.Add("ID", typeof(int)); 
    Table.Columns.Add("ItemName", typeof(string)); 
    Table.Columns.Add("ItemValue", typeof(string)); 
    Table.Rows.Add(1, "A","AA"); 
    Table.Rows.Add(2, "B","BB"); 
    return Table; 
} 

public void PopulateColumns() 
{ 
    GridViewDataTextColumn colID = new GridViewDataTextColumn(); 
    colID.FieldName = "ID"; 
    ASPxGridView1.Columns.Add(colID); 

    GridViewDataTextColumn srk = new GridViewDataTextColumn(); 
    srk.FieldName = "ItemValue"; 
    ASPxGridView1.Columns.Add(srk); 

    GridViewDataHyperLinkColumn colItemName = new GridViewDataHyperLinkColumn(); 
    colItemName.FieldName = "ItemValue"; 
    colItemName.PropertiesHyperLinkEdit.NavigateUrlFormatString = "~/details.aspx?Device={0}"; 
    colItemName.PropertiesHyperLinkEdit.TextFormatString = "{0}"; 
    colItemName.PropertiesHyperLinkEdit.TextField = "ItemName"; 
    ASPxGridView1.Columns.Add(colItemName); 
} 

ここ列itemNameにあなたが複数の列に基づいてハイパーリンクテキストを表示したい場合は、HyperlinkColumnを実装するための適切なアプローチではありません

+0

おかげで、私はそれが私の問題を解決するかどうかはわかりません。この例では、セルの現在の値が書式化されていると思います。列0の行0に文字列 "値1"があり、列3の行0に文字列 "値2"がある場合は、列3の値を含めるように列3の書式を設定します。この例の列3では、行0はリンク「〜/ details.aspx?Device = value1」を持ちます。 – DMC

+0

必要に応じてコードを変更しました。これが役立つことを願っています。 –

0

のparams URL文字列としてitemValueを参照してください。テンプレートを使う方がいいでしょう。

この列にはDataItemTemplateを作成する必要があります。Bindステートメントを使用して、表示テキストまたはハイパーリンクURLの書式を設定できます。これは、ASP.NET GridViewコントロールで使用されているのと同じアプローチで、ASPxGridViewコントロールと同様の方法で動作します。

私はこれらのサンプルと付属のサンプルプロジェクトを理解することをお勧めします。

ASPxGridView - How to customize HyperLink column
How to use a hyperlink whose argument depends on several cell values in the ASPxGridView How to customize navigate URL for HyperLink column within a ASPxGridView - これが答えに付属のサンプルが含まれています。

例: DataItemTemplate for column。

  <dxwgv:GridViewDataTextColumn FieldName="ContactName" VisibleIndex="3"> 
       <DataItemTemplate> 
        <dxe:ASPxComboBox ID="ASPxComboBox1" runat="server" ValueType="System.String" DataSourceID="AccessDataSource1" 
         TextField="ContactName" ValueField="ContactName" Value='<%#Bind("ContactName")%>' OnSelectedIndexChanged="ASPxComboBox1_SelectedIndexChanged"> 
         <ClientSideEvents SelectedIndexChanged="onSelectedIndexChanged" /> 
        </dxe:ASPxComboBox> 
       </DataItemTemplate> 
      </dxwgv:GridViewDataTextColumn> 

または

あなたの応答のための
<dx:ASPxHyperLink ID="ASPxHyperLink3" runat="server" 
    NavigateUrl='<%# string.Format("~/AccountDetail.aspx?CategoryID={0}", Eval("i_Customer")) %>' 
    Text='<%# string.Format("i_Customer{0}", Eval("i_Customer")) %>' .../> 

ASPxGridView - ASPxHyperLink Navigate URL formatting
ASPxGridView - How to set GridViewDataHyperlinkColumn's text and navigate url

関連する問題