передача строки запроса - PullRequest
0 голосов
/ 16 октября 2010

Рассмотрим страницу, когда страница загружается, ничего не появляется.

Это работает, когда я передаю строку запроса в браузере так:

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>

1 Ответ

2 голосов
/ 16 октября 2010

Трудно ответить на ваш вопрос, не показывая код страницы или хотя бы объясняя, что он делает. Из URL кажется, что страница опирается на параметр ID и пытается разобрать его в Guid. Вам нужно проверить, передан ли параметр ID, и использовать его только в этом случае:

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