2013-02-01 66 views
0

我有一個自定義網格,其中我綁定了數據在我的c#代碼後面。我給了我的一個專欄的超鏈接字段。如果我單擊超鏈接值,它應該導航到該超鏈接值的詳細信息頁面。代碼如下給出如何將值綁定到gridview中的超鏈接在c#代碼後面

protected void grd_RowDataBound(object sender, GridViewRowEventArgs e) 
    { 
     if (e.Row.RowType == DataControlRowType.DataRow) 
     { 
      HyperLink myLink = new HyperLink(); 
      myLink.Text = e.Row.Cells[2].Text; 
      e.Row.Cells[2].Controls.Add(myLink); 
      myLink.NavigateUrl = "Estimation.aspx?EstimateID=" + EstimateID + "&VersionNo=" + VersionNo; 
     } 
    } 

如果我點擊鏈接,頁面導航得到,但我沒有得到這是已經預裝在該頁面的細節。請給我建議如何納入這一點。 感謝

+1

'但是我沒有得到這是已經預裝在page.'細節能否請您詳細介紹一下..你頁面在談論什麼?什麼是預加載的值? – Raghuveer

+0

是否可以在使用查詢字符串值EstimateID和VersionNo重定向到Estimation.aspx頁面之後解釋其確切行爲。 –

+0

我認爲,您需要關注Estimation.aspx頁面的PageLoad事件。但是你的問題並不完全清楚。 – RTRokzzz

回答

0

您可以使用此重定向,閱讀this

<asp:HyperLink ID="HyperLink1" 
       runat="server" 
       NavigateUrl="Default2.aspx"> 
       HyperLink 
</asp:HyperLink> 

與鏈接添加屬性只是添加

HyperLink1.Attributes.Add (""); 
0

您需要在RowDataBound事件做一個小的變化

myLink.Attributes.Add(「href」,「your url」);

0

您需要從網格行數據中獲取EstimateIDVersionNo的值。看看GridViewRowEventArgs的文檔,你會看到有一個.Row屬性。

所以,你的代碼需要是這樣的:

myLink.NavigateUrl = "Estimation.aspx?EstimateID=" + e.Row.Cells[4].Text + "&VersionNo=" + e.Row.Cells[5].Text; 

或者,也許你需要去與網格行相關的數據項,在這種情況下看看e.Row.DataItem, GridViewRow.DataItem property。這DataItem的將需要轉換到你綁定到網格,以獲取來自它的數據的數據類型,它可能是這樣的:

((MyCustomDataRow)e.Row.DataItem).EstimateID 
0

嘗試以下解決方案:

頁-1這是你的目錄頁: ASPX代碼:

<asp:GridView ID="GridView1" runat="server" 
     onrowdatabound="GridView1_RowDataBound"> 
    <Columns> 
    <asp:TemplateField> 
    <ItemTemplate> 
     <asp:HyperLink ID="HyperLink1" runat="server">HyperLink</asp:HyperLink> 
    </ItemTemplate> 
    </asp:TemplateField> 
    </Columns> 
    </asp:GridView> 

代碼背後:

protected void Page_Load(object sender, EventArgs e) 
    { 
     List<Data> lstData = new List<Data>(); 
     for (int index = 0; index < 10; index++) 
     { 
      Data objData = new Data(); 
      objData.EstimateID = index; 
      objData.VersionNo = "VersionNo" + index; 
      lstData.Add(objData); 
     } 

     GridView1.DataSource = lstData; 
     GridView1.DataBind(); 
    } 

    public class Data 
    { 
     public int EstimateID { get; set; } 
     public string VersionNo { get; set; } 
    } 
    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 
    { 
     if (e.Row.RowType == DataControlRowType.DataRow) 
     { 
      HyperLink HyperLink1 = e.Row.FindControl("HyperLink1") as HyperLink; 
      HyperLink1.NavigateUrl = "Details.aspx?EstimateID=" + e.Row.Cells[1].Text + "&VersionNo=" + e.Row.Cells[2].Text; 
     } 
    } 

頁-2是你的詳細信息頁面: 後面的代碼:

protected void Page_Load(object sender, EventArgs e) 
    { 
     Response.Write(Request.QueryString["EstimateID"].ToString()); 
     Response.Write(Request.QueryString["VersionNo"].ToString()); 
    } 
+0

@Anu:有沒有關於我的上述帖子的更新 –

相關問題