2017-01-27 171 views
0

我是新來的數據庫模型,我正在嘗試篩選器輸入文本框時的gridView。GridView使用數據庫實體篩選和篩選器

<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> 

我想通過一個文本框與文本框IDtxtPatientName過濾我的網格視圖。有人可以幫我弄這個嗎?

提前致謝!我只需要簡單介紹一下如何做到這一點。

+0

你想要在客戶端或服務器端完成此搜索嗎?因爲它可以通過兩種方式完成。 –

+0

我已經解決了這個問題!謝謝 – Thibaut

+0

@Thibaut如果你自己解決了這個問題,那麼你應該1)添加你的解決方案作爲這個問題的答案或2)刪除這個問題。 – user1429080

回答

0

添加一個文本框即

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

和修改您的SqlDataSource類似下面。

 <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> 

它被測試和完美工作。希望能幫助到你。 關心!

+0

謝謝!有用 – Thibaut