Я использую VS2005 C # и SQL Server 2005.
В настоящее время я могу отображать данные, используя источник данных из оператора SQL SELECT * из таблицы.
Теперь я реализовал функцию поиска в моей таблице, которая будет отображать результаты поиска по мере ввода пользователя.
Однако я не могу установить отображение данных по умолчанию для отображения всех данныхпо умолчанию или когда текстовое поле поиска пусто.
Я следую этому руководству: http://www.asp.net/data-access/tutorials/displaying-data-with-the-objectdatasource-cs, и я в основном застрял в последней части, где он вставляет оператор if-else для своего списка данных, который я понятия не имею, где изменить мой: (
Ниже приведены коды и снимки экрана:
RPList.aspx.cs:
<%@ Page Language="C#" MasterPageFile="~/MainPage.master" AutoEventWireup="true" CodeFile="RPList.aspx.cs" Inherits="SimpleDisplay" Title="Untitled Page" %>
<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" Runat="Server">
Role: <asp:TextBox ID="RPbyRoleTB" runat="server"></asp:TextBox>
<asp:Button ID="RPbyRoleBtn" runat="server" Text="Show Roles & Processes" />
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:<connection> %>" SelectCommand="SELECT * FROM [RolesProcess] WHERE ([Role] = @Role)">
<SelectParameters>
<asp:ControlParameter ControlID="RPbyRoleTB" Name="Role" PropertyName="Text" Type="String" />
</SelectParameters>
</asp:SqlDataSource>
<script language="javascript" type="text/javascript">
// <!CDATA[
// ]]>
</script>
<asp:GridView ID="GridView1" runat="server" AllowSorting="True" DataSourceID="SqlDataSource1">
</asp:GridView>
</asp:Content>
Что мне нужно сделать, чтобы при загрузке моей страницы или при пустом окне поиска по умолчанию показывались полные данные?
В соответствии с предложением Politia я попытался изменить свой запросВЫБРАТЬ [колонки] ИЗ RolesProcess WHERE (Role = @Role) ИЛИ (LEN (@Role) = 0), однако, как я уже говорил, он работает не так гладко, как я думал. Ниже приведеныскриншоты.
За кодом страницы после изменения SQL-запроса:
<%@ Page Language="C#" MasterPageFile="~/MainPage.master" AutoEventWireup="true" CodeFile="RPList.aspx.cs" Inherits="SimpleDisplay" Title="Untitled Page" %>
<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" Runat="Server">
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:SODConnectionString %>" SelectCommand="SELECT [columns] FROM RolesProcess WHERE (Role = @Role) OR (LEN(@Role) = 0) OR (@Role IS NULL)">
<SelectParameters>
<asp:ControlParameter ControlID="TextBox1" Name="Role" PropertyName="Text" Type="String" DefaultValue="" />
</SelectParameters>
</asp:SqlDataSource>
<asp:TextBox ID="TextBox1" runat="server" OnTextChanged="TextBox1_TextChanged"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="Button" />
<script language="javascript" type="text/javascript">
// <!CDATA[
// ]]>
</script>
<asp:GridView ID="GridView1" runat="server" AllowSorting="True" DataSourceID="SqlDataSource1">
</asp:GridView>
</asp:Content>
Все запросы работают во время настройки.Я загружаю свою страницу, таблицы не отображаются, и даже если я ищу «пустые» значения, в таблице не отображаются какие-либотакже данные.
Изображение страницы при загрузке, и даже если я нажму на кнопку, ничего не отобразится.