2010-10-16 174 views
0

考虑一个页面,当页面加载时,什么都不显示。传递查询字符串

http://localhost:51765/foo/foo.aspx?ID=c516f4f4-36a9-40a7-baad-d2419ea631b9

我希望它在页面加载不是当我通过浏览器上的查询字符串的工作:

当我通过查询字符串上的浏览器,因为这它的工作原理。

有人可以帮助我吗?

<asp:SqlDataSource ID="categoriesDataSource" runat="server" 
    connectionString="<%$ ConnectionStrings:ConnectionString %>" 
    SelectCommand="SELECT [CategoryID], [Name] FROM [Categories] WHERE ([UserId] = @UserId) ORDER BY [Name]"> 
    <SelectParameters> 
      <asp:QueryStringParameter Name="UserId" QueryStringField="ID" /> 
    </SelectParameters> 
</asp:SqlDataSource> 

<asp:DropDownList ID="categories" runat="server" AutoPostBack="True" 
     DataSourceID="categoriesDataSource" DataTextField="Name" 
     AppendDataBoundItems="True" DataValueField="CategoryID"> 
     <asp:ListItem Value="">-- All Albums --</asp:ListItem> 
</asp:DropDownList> 

<asp:SqlDataSource ID="picturesDataSource" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 
     SelectCommand="SELECT [PictureID], [Title], [UploadedOn] FROM [Pictures] WHERE UserId = @UserId AND 
     (CategoryID = @CategoryID Or @CategoryID IS NULL) ORDER BY UploadedOn DESC" 
     CancelSelectOnNullParameter="False"> 
    <SelectParameters> 
     <asp:ControlParameter ControlID="categories" Name="CategoryID" PropertyName="SelectedValue"/> 
     <asp:QueryStringParameter Name="UserId" QueryStringField="ID" /> 
    </SelectParameters> 
</asp:SqlDataSource> 


<asp:GridView ID="GridView1" runat="server" DataSourceID="picturesDataSource"> 
</asp:GridView> 

回答

2

如果不显示页面代码或至少说明它的作用,很难回答您的问题。从网址看来,页面依赖于ID参数并尝试将其解析为Guid。您需要测试是否传递ID参数并仅在此情况下使用它:

string id = Request["ID"]; 
if (!string.IsNullOrEmpty(id)) 
{ 
    // The ID parameter has been passed => use its value here 
} 
+0

这里是代码 – onfire4JesusCollins 2010-10-16 17:14:14

相关问题