2012-03-01 65 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

相关问题