C# 在两个页面之间传递url的查询字符串时出错
我正在从事一个项目,在该项目的第一个页面上是default.aspx页面,我有一个网格视图,它与表category的列categoryname绑定。下面是代码default.aspx:C# 在两个页面之间传递url的查询字符串时出错,c#,asp.net,sql-server,C#,Asp.net,Sql Server,我正在从事一个项目,在该项目的第一个页面上是default.aspx页面,我有一个网格视图,它与表category的列categoryname绑定。下面是代码default.aspx: <form id="form1" runat="server"> <div> <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="catid"
<form id="form1" runat="server">
<div>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="catid"
DataSourceID="SqlDataSource1">
<Columns>
<asp:HyperLinkField DataNavigateUrlFields="catid" DataNavigateUrlFormatString="~/subcategory.aspx?catid={0}"
DataTextField="categoryname" />
</Columns>
</asp:GridView>
</div>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ToursandTravelsConnectionString %>"
SelectCommand="SELECT [catid], [categoryname] FROM [category]"></asp:SqlDataSource>
</form>
DataNavigateUrlFormatString="~/subcategory.aspx?catid={0}"
问题是,当我使用catid时,我得到的值为1,2,依此类推,但当我使用从表子类别检索的subcatname时,如下所示:
DataNavigateUrlFormatString="~/subcategory.aspx?catid={0}"
DataNavigateUrlFormatString="~/subcategory.aspx?catid={0}"
它不显示子类别表中的子类别名称。如何获取子类别而不是catid的值
DataNavigateUrlFormatString="~/subcategory.aspx?catid={0}"
我还想根据我在网格视图中显示的子类别名称显示图像。我现在正在获取所有图像这是我的网格视图代码
<form id="form1" runat="server">
<div>
<table>
<tr>
<td>
<asp:Label ID="labelsubcatname" runat="server"></asp:Label>
<br />
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
DataSourceID="SqlDataSource1">
<Columns>
<asp:TemplateField HeaderText="pic" SortExpression="pic">
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("pic") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Image ID="Image1" runat="server" Height="200px"
ImageUrl='<%# Eval("pic") %>' Width="250px" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:Label ID="labelviewdetail" runat="server" Text="View Detail"></asp:Label>
<br />
</td>
</table>
</div>
</form>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:ToursandTravelsConnectionString %>"
SelectCommand="SELECT [pic] FROM [subcategory]"></asp:SqlDataSource>
DataNavigateUrlFormatString="~/subcategory.aspx?catid={0}"
在subcategory.aspx的页面加载中有您的Subcatid。然后使用Subcatid从数据库中检索行值 您可以在数据源中对查询使用内部联接,以便从子类别表中获取子类别名称,如下所示:
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ToursandTravelsConnectionString %>"
SelectCommand="SELECT C.[catid], C.[categoryname], S.[subcatname] FROM [category] C INNER JOIN subcategory S ON C.[catid] = S.[catid]"></asp:SqlDataSource>
DataNavigateUrlFormatString="~/subcategory.aspx?catid={0}"
好的,听着
DataNavigateUrlFormatString="~/subcategory.aspx?catid={0}"
表示您正在从数据库传递元素0,即
DataNavigateUrlFormatString="~/subcategory.aspx?catid={0}"
将其更改为1,即
DataNavigateUrlFormatString="~/subcategory.aspx?catid={0}"
DataNavigateUrlFormatString="~/subcategory.aspx?catid={1}"
你不需要
DataNavigateUrlFormatString="~/subcategory.aspx?catid={0}"
HttpUtility.UrlDecode(Request.QueryString[“subcatname”]);'代码>
DataNavigateUrlFormatString="~/subcategory.aspx?catid={0}"
换成
DataNavigateUrlFormatString="~/subcategory.aspx?catid={0}"
Request.QueryString[“subcatname”].ToString() 如果在查询字符串中传递CategoryID,则必须在第二页上运行查询。您能告诉我在第二页上需要运行什么查询吗@SeanLange使用select语句从类别表中获取categoryname,其中包含传入值的where子句。是否应为:“从catid=1的子类别中选择子类别名称”@seanlange该查询是否返回所需的值?然后我会说是的。我使用subcatid而不是catid,如下所示:“labelsubcatname.Text=HttpUtility.UrlDecode(Request.QueryString[“subcatname”]);”但是我没有得到任何输出,标签是空白的,请检查上面的解决方案。我发帖感谢你的it解决方案。请再帮我一个问题。我已经编辑了我的帖子。请帮助。谢谢:)@ricky007没问题。就像我的帖子一样,你还有什么问题吗?我已经编辑了我的帖子,请过目:)@ricky007我能问你一个愚蠢的问题吗?我应该在subcategory.aspx.cs文件中应用内部联接吗@jomsk1eYou可以将查询更新到SqlDataSource1,请参阅我的更新。请参阅我的编辑。当你调试时,请求的价值是什么?QueryString[“subcatname”]?谢谢你,兄弟,它成功了。我的帖子中还编辑了一个问题,请帮助我,谢谢:)@jomsk1eI很高兴它有帮助!对于新问题,我认为这与这个线程无关,因为这个线程的内容是关于在另一个页面上传递查询字符串。这将使本帖的未来读者感到困惑。您应该为该新问题启动一个新问题,以便不同的用户可以查看和帮助您。请尝试此DataNavigateUrlFields=“subcatname”
DataNavigateUrlFormatString="~/subcategory.aspx?catid={0}"