问题描述
我用的是VS2005,在default.aspx中我先用GridView将数据显示出来,但是只显示部分信息,然后我又新添加了一个details.aspx页,在页中也添加了一个GridView,请问,我如何可以实现在default.aspx中点击主键,然后将详细信息显示在details.aspx中,很否详细一些,谢谢!1.default.aspx.csprotectedvoidPage_Load(objectsender,EventArgse){if(!this.IsPostBack){this.BindToGridView();}}privatevoidBindToGridView(){SqlConnectioncon=DB.createCon();con.Open();SqlDataAdaptersda=newSqlDataAdapter();sda.SelectCommand=newSqlCommand("select*fromauthors",con);DataSetds=newDataSet();sda.Fill(ds,"pub");this.GridView1.DataSource=ds.Tables["pub"].DefaultView;this.GridView1.DataBind();}protectedvoidGridView1_PageIndexChanging(objectsender,GridViewPageEventArgse){this.GridView1.PageIndex=e.NewPageIndex;this.BindToGridView();}2.details.aspx.cs页面privatestringau_id;publicstringAu_id{set{this.au_id=value;}}protectedvoidPage_Load(objectsender,EventArgse){if(!this.IsPostBack){SqlConnectioncon=DB.createCon();con.Open();SqlDataAdaptersda=newSqlDataAdapter();sda.SelectCommand=newSqlCommand("select*fromauthorswhereau_id='"+au_id+"'",con);DataSetds=newDataSet();sda.Fill(ds,"au");this.GridView1.DataSource=ds.Tables["au"].DefaultView;this.GridView1.DataBind();}}主键设得是au_id,运行后details.aspx是空白页,没有显示错误,但是没任何数据,在default.aspx中的GridView中,我已经将au_id所在的超级链接列中的DataNavigateUrlFormatString中设成了details.aspx?au_id={0},请问下一步应该如何操作喃?谢谢!
解决方案
解决方案二:
把GridView中的列改成模板列使用Request["id"]就可以,代码片段----------------<asp:TemplateFieldHeaderText="操作"><itemstylehorizontalalign="Center"width="15%"/><headerstylehorizontalalign="Center"/><itemtemplate><ahref='/user/CommodityEdit.aspx?id=<%#Eval("ID")%>'><imgsrc="/User/images/edit.gif"alt="编辑"/></a><asp:LinkButtonID="lnkRefresh"CommandName="Refresh"CommandArgument='<%#Eval("ID")%>'runat="server"><imgsrc="/User/images/refresh.gif"alt="刷新"/></asp:LinkButton><asp:LinkButtonID="lnkDel"CommandName="Del"CommandArgument='<%#Eval("ID")%>'OnClientClick="returnconfirm('确定删除本条记录吗?本操作不可恢复!');"runat="server"><imgsrc="/User/images/del.gif"alt="删除"/></asp:LinkButton></itemtemplate></asp:TemplateField>
解决方案三:
<ahref='/user/CommodityEdit.aspx?id=<%#Eval("ID")%>'><imgsrc="/User/images/edit.gif"alt="编辑"/></a>使用<a标签就好了
解决方案四:
你是用的弹出窗口吗?如果是那样的话,就用个模板列吧,用个js方法把你要的点击的主键传过去就好了,在新的窗口中根据你的主键来取出detail,我们原来做过很好这样的模板,希望有帮助。
解决方案五:
GridView有个超链接列