源代码:
<asp:GridView ID="gvpost" runat="server" >
        <Columns>        
           <asp:HyperLinkField DataTextField="id" HeaderText="帖子编号" NavigateUrl="page.aspx?id=">   
           </asp:HyperLinkField>
        </Columns>
</asp:GridView>问题:
我想在NavigateUrl="page.aspx?id="中将从数据库中得到的id作为参数传递,要怎么做?

解决方案 »

  1.   

    page.aspx?id={0}
    记得好像这个样子
      

  2.   

                <asp:HyperLinkColumn DataNavigateUrlField="id" DataNavigateUrlFormatString="page.aspx?id={0}"
                    DataTextField="id" HeaderText="帖子编号">
                </asp:HyperLinkColumn>
      

  3.   

    DataNavigateUrlField 存的就是数据库里的字段名
    每一行,{0}会去读这个字段的值所以关键就是这两个属性
    DataNavigateUrlField="id" DataNavigateUrlFormatString="page.aspx?id={0}" 
      

  4.   

    嘿嘿 谢谢上面问题解决了。
    赖皮下,还有一个小问题,如果解决了我会加分的。
    有一个DropDownList id="DropKinds"
    在后台绑定了数据如下:
             IList<Board> bs = BoardManager.GetAllBoards();
            DropKinds.DataSource = bs;
            DropKinds.DataTextField = "name";
            DropKinds.DataValueField = "id";
            DropKinds.DataBind();
    也就是显示的时候 选项显示的是 name的列表
    但是我真正需要的是 id. 我怎么得到被选择的id ?
    我是这样做的
    int BoardId =Convert.ToInt32(DropKinds.SelectedValue);
    但结果好像是 不管我选择哪一个,我得到的id 都是第一个选项的id.这是为什么?
      

  5.   

    page.aspx?id={0}
    第2个问题是否在
    if(!IsPostBack)
    {
      binding code.
    }
      

  6.   


    你是追踪看到的ID没变还是你在页面上用label显示没变呢?
    如果是页面上显示,那你就需要了解下页面的基础知识了。OnTextChange 以及OnSelectChange这类事件当你修改的时候其实已经触发,但是他们不会cause post back.所以你只有在点提交button的时候才能看到,如果你要看到label改变,那可以考虑在加一句,DropKinds.AutoPoastBack=true;
      

  7.   

    我是在button_click事件中想获取dropkinds中的id值,应该不是回传问题。
    我觉得这句是不是没有得到我要的结果
    int BoardId =Convert.ToInt32(DropKinds.SelectedValue); 
    也就是,我到底怎样才可以得到 id ?
      

  8.   

     IList<Board> bs = BoardManager.GetAllBoards(); DropKinds.DataSource = bs; DropKinds.DataTextField = "name"; DropKinds.DataValueField = "id"; DropKinds.DataBind();这段绑定的代码必须写在
    if(!IsPostBack)
    {
       //这里
    }
      

  9.   


    你的DataTextField="id",你的DataValueField呢?DataTextField是下拉菜单中显示的不分,DataValueField一般是数据主键,
    你既然要用DropKinds.SelectedValue, 那就需要设DataValueField如果你的下拉菜单显示的本身就是主键,那么就DataValueField=“id”
      

  10.   

    他的问题貌似和你一样
    http://topic.csdn.net/u/20090910/16/562c7af1-f850-43fd-b56e-82a307dc8fcd.html