2016-07-06 79 views
0

我正在使用for循環向使用VB.Net的DevExpress ASP.Net WebForms GridView添加列。我能得到一個超鏈接引用相同的列值:超鏈接引用到另一列DevExpress Gridview ASP.Net Webform

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

我需要以編程方式設置超鏈接到另一列的值...即列三個方面的需求有,在引用列1值的超鏈接同一行。如何在運行時使用VB或C#訪問該行中的另一列?

回答

1

請參考這個網址爲您解決問題

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

改變你填入電網邏輯

ASPX:

<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); 
} 

這裏如果你要根據多個列中顯示超鏈接文本,然後HyperlinkColumn不實施正確的方法列ITEMNAME指項目值作爲URL字符串PARAMS

+0

感謝您的答覆,但我不知道如何解決我的問題。我相信這個例子只是格式化了單元格的當前值。如果列0的行0的字符串爲「value1」,列3的行0的字符串爲「value2」,那麼如何格式化第3列的url以包含列0的值。在這個例子中,列3行0將具有鏈接:「〜/ details.aspx?Device = value1」。 – DMC

+0

我已根據您的需要更改我的代碼,我希望這可能有所幫助。 –

0

。這將是更好的使用模板。

您應該爲列創建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列。

  <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