GridView超链接列的跳转问题

来源:百度知道 编辑:UC知道 时间:2024/05/22 14:03:47
我在GridView中添加了RowDataBound事件,并在如图所示页面的CS代码页下写入了如下代码:
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowState == DataControlRowState.Normal)
{
e.Row.Cells[0].Text = "<a href='BillDispenseUpdate.aspx' target='_blank'>" + e.Row.Cells[0].Text + "</a>";
}
}
结果就像图中那样,PKID每隔一行才可点击那蓝色的超链接。这该如何解决?

还有,当我点击超链接列的时候,ErrorPage捕捉到错误为:未将对象引用设置到对象的实例。 我想这是否与链接页未能接受到传输参数等问题有关?并且主页和链接页都可以生成,不知道错在哪里。链接页的Page_Load代码如下:
protected void Page_Load(object sender, System.EventArgs e)
{
if (!this.IsPostBack)
{
// 获取从BillDispenseList页传递的变量值
int PKID = int.Parse(Request.QueryString["PKID"].ToString());

// 声明用户处理类对象

<asp:GridView ID="GridView1" runat="server">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:HyperLink ID="HyperLink1" runat="server"
NavigateUrl='<%# "BillDispenseUpdate.aspx?PKID=" + Eval("PKID")%>'>
编辑</asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>

----------------------------
第二问题,其实是你第一个问题的后遗症,你的第一个问题,最终是如何解决的呢?

把第一个问题的解决方法帖一下。
看你的错误提示,是 Request.QueryString["PKID"] 没有取到值,我看了你上面的第一个问题的写法,如果你没有改动的话,肯定是要错误的,因为你根本没有传递 PKID 参数到 Bil