2017-01-27 2 views
0

Ich bin neu in Datenbank-Modell und ich versuche Filter das GridView beim Eintippen in ein Textfeld.GridView Using Database Entities Suche und Filter

<asp:TextBox ID="TextBoxSearch" runat="server"></asp:TextBox> 
<asp:GridView ID="myGridview" runat="server" AutoGenerateColumns="false" 
     DataKeyNames="ContactID,MedicineTypeID,MedicineID" CellPadding="10" CellSpacing="0" 
     ShowFooter="true" 
     CssClass="myGrid" HeaderStyle-CssClass="header" RowStyle-CssClass="trow1" 
     AlternatingRowStyle-CssClass="trow2" OnRowCommand="myGridview_RowCommand" OnRowCancelingEdit="myGridview_RowCancelingEdit" OnRowDeleting="myGridview_RowDeleting" OnRowEditing="myGridview_RowEditing" OnRowUpdating="myGridview_RowUpdating"> 

     <Columns> 
      <asp:TemplateField> 
       <HeaderTemplate>Patient Name</HeaderTemplate> 
       <ItemTemplate><%#Eval("PatientName") %></ItemTemplate> 
       <EditItemTemplate> 
        <asp:TextBox ID="txtPatientName" runat="server" Text='<%#Bind("PatientName") %>' /> 
        <asp:RequiredFieldValidator ID="rfCPEdit" runat="server" ForeColor="Red" ErrorMessage="*" 
         Display="Dynamic" ValidationGroup="edit" ControlToValidate="txtPatientName">Required</asp:RequiredFieldValidator> 
       </EditItemTemplate> 
       <FooterTemplate> 
        <asp:TextBox ID="txtPatientName" runat="server"></asp:TextBox><br /> 
        <asp:RequiredFieldValidator ID="rfCP" runat="server" ErrorMessage="*" 
         ForeColor="Red" Display="Dynamic" ValidationGroup="Add" ControlToValidate="txtPatientName">Required</asp:RequiredFieldValidator> 
       </FooterTemplate> 
      </asp:TemplateField> 
      <asp:TemplateField> 
       <HeaderTemplate>Quantity</HeaderTemplate> 
       <ItemTemplate><%#Eval("Quantity") %></ItemTemplate> 
       <EditItemTemplate> 
        <asp:TextBox ID="txtQuantity" runat="server" Text='<%#Bind("Quantity") %>' /> 
        <asp:RequiredFieldValidator ID="rfCNEdit" runat="server" ErrorMessage="*" 
         Display="Dynamic" ForeColor="Red" ValidationGroup="edit" ControlToValidate="txtQuantity">Required</asp:RequiredFieldValidator> 
       </EditItemTemplate> 
       <FooterTemplate> 
        <asp:TextBox ID="txtQuantity" runat="server"></asp:TextBox><br /> 
        <asp:RequiredFieldValidator ID="rfCN" runat="server" ErrorMessage="*" 
         ForeColor="Red" Display="Dynamic" ValidationGroup="Add" ControlToValidate="txtQuantity">Required</asp:RequiredFieldValidator> 
       </FooterTemplate> 
      </asp:TemplateField> 
      <asp:TemplateField> 
       <HeaderTemplate>Medicine Type</HeaderTemplate> 
       <ItemTemplate><%#Eval("MedicineType") %></ItemTemplate> 
       <EditItemTemplate> 
        <asp:DropDownList ID="ddType" runat="server" AutoPostBack="true" 
         OnSelectedIndexChanged="ddCountry_SelectedIndexChanged"> 
         <asp:ListItem Text="Select Medicine type" Value="0"></asp:ListItem> 
        </asp:DropDownList> 
        <asp:RequiredFieldValidator ID="rfCEdit" runat="server" ErrorMessage="*" 
         ForeColor="Red" Display="Dynamic" ValidationGroup="edit" ControlToValidate="ddType" InitialValue="0"> 
         Required 
        </asp:RequiredFieldValidator> 
       </EditItemTemplate> 
       <FooterTemplate> 
        <asp:DropDownList ID="ddType" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddCountry_SelectedIndexChanged"> 
         <asp:ListItem Text="Select Medicine Type" Value="0"></asp:ListItem> 
        </asp:DropDownList> 
        <br /> 
        <asp:RequiredFieldValidator ID="rfC" runat="server" ErrorMessage="*" 
         ForeColor="Red" Display="Dynamic" ValidationGroup="Add" ControlToValidate="ddType" InitialValue="0">Required</asp:RequiredFieldValidator> 
       </FooterTemplate> 
      </asp:TemplateField> 
      <asp:TemplateField> 
       <HeaderTemplate>Medicine Name</HeaderTemplate> 
       <ItemTemplate><%#Eval("MedicineName") %></ItemTemplate> 
       <EditItemTemplate> 
        <asp:DropDownList ID="ddState" runat="server"> 
         <asp:ListItem Text="Select Medicine" Value="0"></asp:ListItem> 
        </asp:DropDownList> 
        <asp:RequiredFieldValidator ID="rfSEdit" runat="server" ErrorMessage="*" 
         ForeColor="Red" Display="Dynamic" ValidationGroup="edit" ControlToValidate="ddState" InitialValue="0"> 
         Required 
        </asp:RequiredFieldValidator> 
       </EditItemTemplate> 
       <FooterTemplate> 
        <asp:DropDownList ID="ddState" runat="server"> 
         <asp:ListItem Text="Select Medicine" Value="0"></asp:ListItem> 
        </asp:DropDownList><br /> 
        <asp:RequiredFieldValidator ID="rfS" runat="server" ErrorMessage="*" 
         ForeColor="Red" Display="Dynamic" ValidationGroup="Add" ControlToValidate="ddState" 
         InitialValue="0">Required</asp:RequiredFieldValidator> 
       </FooterTemplate> 
      </asp:TemplateField> 
      <asp:TemplateField> 
       <ItemTemplate> 
        <asp:LinkButton ID="lbEdit" runat="server" CommandName="Edit">Edit</asp:LinkButton> 
        &nbsp;|&nbsp; 
        <asp:LinkButton ID="lbDelete" runat="server" CommandName="Delete" OnClientClick="return confirm('Are you confirm?')">Delete</asp:LinkButton> 
       </ItemTemplate> 
       <EditItemTemplate> 
        <asp:LinkButton ID="lbUpdate" runat="server" CommandName="Update" ValidationGroup="edit">Update</asp:LinkButton> 
        &nbsp;|&nbsp; 
        <asp:LinkButton ID="lbCancel" runat="server" CommandName="Cancel">Cancel</asp:LinkButton> 
       </EditItemTemplate> 
       <FooterTemplate> 
        <asp:Button ID="btnInsert" runat="server" Text="Prescribe" CommandName="Insert" ValidationGroup="Add" /> 
       </FooterTemplate> 
      </asp:TemplateField> 
     </Columns> 

    </asp:GridView> 

Ich möchte meine Tabellenansicht durch ein textBox mit TextBox ID als txtPatientName filtern. Kann mir jemand dabei helfen?

Vielen Dank im Voraus! Ich brauche nur eine kurze Vorstellung davon, wie das geht.

+0

Sie möchten, dass diese Suche auf der Client- oder Serverseite erfolgt? Weil es auf beide Arten gemacht werden kann. –

+0

ich löse das Problem schon! Danke – Thibaut

+0

@Thibaut Wenn Sie das Problem selbst gelöst haben, dann sollten Sie entweder 1) Fügen Sie Ihre Lösung als Antwort auf diese Frage oder 2) Entfernen Sie diese Frage. – user1429080

Antwort

0

Textfeld hinzufügen d

<asp:TextBox ID="TextBoxSearch" runat="server" AutoPostBack="True"/> 

und ändern Sie Ihre SqlDataSource wie unten erwähnt.

 <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
      ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 
      SelectCommand="SELECT [PatientName], [Quantity], [MedicineType],[ContactId],[MedicineTypeID],[MedicineID], [MedicineName] FROM [Patient]" FilterExpression="[PatientName] LIKE '%{0}%'" > 
      <FilterParameters> 
       <asp:ControlParameter ControlID="TextBoxSearch" DefaultValue="" Name="PatientName" PropertyName="Text" Type="String" /> 
      </FilterParameters> 
     </asp:SqlDataSource> 

Es ist getestet und funktionierte perfekt. Ich hoffe es hilft. Grüße!

+0

danke! Es klappt – Thibaut