<asp:DataGrid id="Dg" runat="server" Width="504px" AutoGenerateColumns="False" PageSize="5" AllowPaging="True">
<Columns>
<asp:BoundColumn DataField="ID" HeaderText="编号"></asp:BoundColumn>
<asp:BoundColumn DataField="ModuleName" HeaderText="模板名称"></asp:BoundColumn>
<asp:HyperLinkColumn Text="修改" DataNavigateUrlField="ID" DataNavigateUrlFormatString="Admin_AdminSystemModuleModify.aspx?id={0}"
HeaderText="修改"></asp:HyperLinkColumn>
</Columns>
</asp:DataGrid>
以上是从一个页面有datagrid中传递来的参数id
但是
在另一页面获取string ID=Request.QueryString["id"].ToString();ID却为null
ID字段是int型
为什么??

解决方案 »

  1.   

    int intID=0;if(Request["ID"]!=null)
    {
       intID=Convert.toint32(Request["ID"]);
    }
      

  2.   

    <asp:HyperLinkColumn Text="修改" DataNavigateUrlField="ID" DataNavigateUrlFormatString="Admin_AdminSystemModuleModify.aspx?id={0},ID" HeaderText="修改"></asp:HyperLinkColumn>
      

  3.   

    或者说本身ID字段在数据库中就是NULL值?
    建议: 程序运行后,你可以将鼠标放到该列上,在左下角的地址栏中看看到底id等于多少
      

  4.   

    <asp:HyperLinkColumn Text="修改" Target="_blank" DataNavigateUrlField="id" DataNavigateUrlFormatString="Admin_AdminSystemModuleModify.aspx?id={0:d}"
    DataTextField="id" HeaderText="修改" avigateUrl="Admin_AdminSystemModuleModify.aspx" DataTextFormatString="修改"></asp:HyperLinkColumn>
      

  5.   

    其实你最初的代码就已经是正确的了, 
    DataNavigateUrlField="ID" DataNavigateUrlFormatString="Admin_AdminSystemModuleModify.aspx?id={0}"
      

  6.   

    <asp:HyperLinkColumn Text="修改" Target="_blank" DataNavigateUrlField="id" DataNavigateUrlFormatString="Admin_AdminSystemModuleModify.aspx?id={0:d}"
    DataTextField="id" HeaderText="修改" avigateUrl="Admin_AdminSystemModuleModify.aspx" DataTextFormatString="修改"></asp:HyperLinkColumn>
    我测试过,成功