2012-03-01 64 views
2

我想要做的是創建一個Gridview,並在網格中有一個HyperLinkField它將我發送到該項目的詳細信息頁面,我有填充網格和鏈接的部分和如何將元素的ID傳遞到另一個頁面gridview中的鏈接到詳細信息頁面

我遇到的問題是,當我運行並單擊該鏈接時,顯示我想要的詳細信息頁面,但爲空。當我調試,我不訪問詳情頁

這裏是我的代碼

填補電網

var datos = db.Ticket 
     GridView1.DataSource = datos; 
     GridView1.DataBind(); 

顯示在GridView

<asp:GridView ID="GridView1" runat="server"> 
    <Columns> 

     <asp:HyperLinkField HeaderText="Ver Ticket" Text="Ir Historial Ticket" DataNavigateUrlFormatString="~/DetailTicket.aspx?id={0}" DataNavigateUrlFields="IdTicket" /> 
    </Columns> 

</asp:GridView> 

的詳細信息頁面

public partial class DetailTicket: System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     if (Request.QueryString["id"] != null) 
      var id= Request.QueryString["id"]; 
     var datos = db.detailTicket.Where(e=>e.IdTicket==id) 
     GridView1.DataSource = datos; 
     GridView1.DataBind(); 
    } 
} 
+0

有你調試代碼?哪些值你會得到Request.QueryString [「id」] – 2012-03-01 15:12:37

+0

(但問題是當我調試它也沒有達到page_load)你檢查你的網址...它的工作正常與我和加載事件發射 – 2012-03-01 15:15:01

+0

我調試的是我的DetailTicket的頁面加載它沒有達到後,我點擊鏈接它顯示頁面 http:// localhost:2509/DetailTicket.aspx?id = 1 – 2012-03-01 15:15:38

回答

2

嘿這可能是問題與你的路徑...

我測試你的代碼和它的工作罰款,我....

0

您在Page_Load事件中的if語句中缺少括號。

protected void Page_Load(object sender, EventArgs e) 
{ 

    if (Request.QueryString["id"] != null) 
    { 
     var id= Request.QueryString["id"]; 
     var datos = db.detailTicket.Where(e=>e.IdTicket==id) 
     GridView1.DataSource = datos; 
     GridView1.DataBind(); 
    } 
} 

如果沒有括號,您的id變量將不會在下一行顯示。如果它編譯,我會感到驚訝。

+0

但問題是當我調試它沒有達到page_load – 2012-03-01 15:12:28

+0

@Diego_DX修復括號問題,然後再試一次。如果仍然不起作用不是因爲您發佈的代碼。再一次,如果你真的編譯代碼,我感到很驚訝。就目前而言,你正在引用一個超出範圍的變量。編譯器會抱怨。 – Icarus 2012-03-01 15:15:06

+0

是的對不起,我忘了把括號,但問題我得到的是它不到達我想要的頁面或如何創建一個頁面,接受參數在asp.net? – 2012-03-01 15:23:12

相關問題