2015-01-06 108 views
1

我正在使用Asp.net網格視圖綁定字段,在綁定字段中我使用錨標記在新選項卡中打開值。我的錨標記可以正常使用,因爲它是獲取從數據庫值,但問題是,我想說明從數據庫中值的錨標記一些東西像我的分貝值 這裏是我的代碼Asp.net網格視圖BoundField

<asp:BoundField DataField="uniId" ControlStyle-CssClass="bg-darkGreen" HeaderText="ID"  ReadOnly="True" SortExpression="uniId" HtmlEncode="false" DataFormatString="<a target='_blank'  href='Details.aspx?uniId={0}'>uniId</a>" > 
</asp:BoundField> 

是表示uniId在所有行中而不是它們的值。

我也試過<%= uniId%>但問題依然存在。

+0

可能重複的[如何在ASP.net C#中的數據網格onClick中選擇單元格](http://stackoverflow.com/questions/22087207/how -to-SEL ect-a-cell-in-datagrid-onclick-in-asp-net-c-sharp)也可以在'Templates'上看到。 – MethodMan

+0

嘗試 '<%#Eval(「uniId」)%>' – Rohit

回答

2

使用TemplateField代替BoundField

<asp:TemplateField HeaderText="ID"> 
    <ItemTemplate> 
     <a target='_blank' href='Details.aspx?uniId=<%#Eval("uniId")%>'><%#Eval("uniId")%></a> 
    </ItemTemplate> 
</asp:TemplateField> 
1

使用TemplateFieldBoundField

 <asp:TemplateField ItemStyle-HorizontalAlign="Center"> 
      <ItemTemplate> 
       <HyperLink ID="RedirectBtn" runat="server" 
        OnClick="RedirectBtn_Click" /> 

      </ItemTemplate> 
      <ItemStyle HorizontalAlign="Center"></ItemStyle> 
     </asp:TemplateField> 

您可以添加任何你在OnRowDataBound事件前後電網的希望。通過將它們放置在一個你永遠不應該讓主鍵公開可見的:如果你的RowDataBound事件被稱爲Grid_RowDataBound

protected void Grid_RowDataBound(object sender, GridViewRowEventArgs e) 
    { 
     if (e.Row.DataItem == null) 
      return; 

     DataRowView row = e.Row.DataItem as DataRowView; 

     HyperLinkbtn = e.Row.FindControl("RedirectBtn") as HyperLink; 
     b.NavigateUrl = "some text" + row["ColumnName"] + "other text"; 
     //if you want to open new tab 
     b.Target="_blank"; 

    } 

您要添加的事件電網這樣的:

OnRowDataBound="Grid_RowDataBound" 
2

在一個安全提示URL或作爲可由任何瀏覽器的「查看頁面源」選項查看的值嵌入在griview中。

你起碼需要...

  1. 處理的GridView的
  2. SelectedIndexChanged事件基於行選擇
  3. 設置會話變量或在GridView DataKeys獲取uniID類似於將使用的關鍵值Details.aspx