Jeff Franken Ответов: 1

Как отфильтровать привязанный к базе данных gridview с помощью выпадающего списка?


У меня есть asp.net веб-страница. В нем у меня есть gridview, использующий источник данных linq to sql.
Gridview привязан к таблице данных в sql. Мне нужно добавить несколько выпадающих списков для фильтрации представления gridview. Я добавляю один выпадающий список и заполняю его. Как мне получить ddlComment для фильтрации GridViewUG? Datakey для GridViewUG-это ref_id, но мне нужен выпадающий список, чтобы показать комментарий и разрешить выбор комментария.



protected void Page_Load(object sender, EventArgs e)
 {
     if (!IsPostBack)
     {
         //GridViewUG.DataBind();


         SqlConnection Conn3 = new SqlConnection(MyGlobals.ConnString);
         SqlDataAdapter da3 = new SqlDataAdapter("select distinct comment from cap.manual_adjustments", Conn3);
         DataSet ds3 = new DataSet();
         da3.Fill(ds3);
         if (ddlComment != null)
         {
             ddlComment.DataSource = ds3;
             ddlComment.DataTextField = "Comment";
             ddlComment.DataValueField = "Comment";
             //ddlUnderwritingSection.DataBind();

             ddlComment.Items.Insert(0, new ListItem("Select"));
             ddlComment.DataBind();

         }
     }
 }


<asp:GridView ID="GridViewMA" runat="server" AllowSorting="True" AutoGenerateColumns="False" DataSourceID="dsManualAdjustments"
      Height="100%" Width="100%"
      ShowFooter="True"
      DataKeyNames="Ref_Id"
      OnSelectedIndexChanged="SelectedIndexChanged"
      OnRowEditing="OnRowEditing"
      OnRowCancelingEdit="OnRowCanceling"
      DataBindingComplete="DataBindingComp"
      EnableDelete="true">
      <AlternatingRowStyle BackColor="#cccccc" />
<%--                              <HeaderStyle CssClass="GVFixedHeader" />
              <FooterStyle CssClass="GVFixedFooter" />--%>
      <Columns>

          <asp:CommandField ShowEditButton="True"

          ButtonType="Link" EditText="<img src='Images/edit2.png' border=0 title='Edit the Row'>"
          UpdateText="<img src='Images/update2.png' border=0 title='Update the Row'>"
          CancelText="<img src='Images/cancel2.png' border=0 title='Cancel your changes'>">
      </asp:CommandField>


          <asp:TemplateField ShowHeader="false">
            <ItemTemplate>
                          <asp:imagebutton ID="LinkButton2" runat="server" CommandName="Delete" imageurl="~/Images/delete2.png" OnClientClick="return confirm('Delete this entry?');"  ToolTip='Delete the Row'></asp:imagebutton>
            </ItemTemplate>
            <ItemStyle Width="25px" />
          </asp:TemplateField>

        <asp:TemplateField ShowHeader="false">
            <ItemTemplate>
                          <asp:imagebutton ID="LinkButton3" runat="server" CommandName="Copy" imageurl="~/Images/copy2.png"
                  OnClick="CopyRow"
                  ToolTip='Copy the Row'  ></asp:imagebutton>
            </ItemTemplate>
            <ItemStyle Width="25px" />
            </asp:TemplateField>

          <asp:TemplateField HeaderText="Action" ItemStyle-Width="25px">
            <ItemTemplate>
           </ItemTemplate>

           <FooterStyle HorizontalAlign="Left" />
          <FooterTemplate>
                <asp:Button ID="ButtonAdd" runat="server" Text="Add" OnClick="FirstGridViewRow" />
                  <asp:Button ID="ButtonUpload" runat="server" Text="Upload" OnClick="btnUpload_Click" />
          </FooterTemplate>
          <ItemStyle HorizontalAlign="Left" Width="25px" />
          </asp:TemplateField>

         <asp:BoundField DataField="Import_Date" HeaderText="Import_Date" ReadOnly="True" SortExpression="Import_Date" />

.
.
.
   <asp:TemplateField HeaderText="LC_Balance" ItemStyle-Width="100px" SortExpression="LC_Balance">
                         <ItemTemplate>
               <asp:label ID="LCBalance" runat="server" Text='<%# Eval("LC_Balance") %>' width="100px"></asp:label>
           </ItemTemplate>
           <EditItemTemplate>
               <asp:textbox ID="LCBalance" runat="server" Text='<%# Bind("LC_Balance")%>' Visible="true" ReadOnly="false" Width="150px" MaxLength="15"></asp:textbox>
           </EditItemTemplate>
            <FooterStyle HorizontalAlign="Right"  BackColor="Blue"/>
         <FooterTemplate>
               <asp:Textbox ID="LCBalance" runat="server" Text='<%# Eval("LC_Balance") %>' width="100px" MaxLength="15"/>
         </FooterTemplate>
           <ItemStyle HorizontalAlign="Left" Width="100px" />
         </asp:TemplateField>

<%--         <asp:BoundField DataField="User_Id" HeaderText="User_Id" ReadOnly="True" SortExpression="User_Id" />
         <asp:BoundField DataField="Modified" HeaderText="Modified" ReadOnly="True" SortExpression="Modified" />
         <asp:BoundField DataField="Import_Date" HeaderText="Import_Date" ReadOnly="True" SortExpression="Import_Date" />--%>
     </Columns>



  </asp:GridView>


 </div>

 <asp:LinqDataSource ID="dsManualAdjustments" runat="server" ContextTypeName="CAPScheduler.ManualAdjustmentsDataContext" EntityTypeName="" TableName="Manual_Adjustments" Select="new (Comment, Entity_Number, Ref_Id)" Where="Comment == @Comment" >
     <WhereParameters>
         <asp:ControlParameter ControlID="ddlComment" Name="Comment" PropertyName="SelectedValue" Type="String" />
     </WhereParameters>
    </asp:LinqDataSource>


Что я уже пробовал:

Я попытался создать выпадающий список с помощью linq и прикрепить 2 в режиме дизайна, но мне нужна отдельная строка для каждой группы комментариев. Он возвращает несколько строк для одного и того же комментария, потому что он действительно связывает выпадающий список с gridview в фоновом режиме с помощью ref_id

1 Ответов

Рейтинг:
1

Jeff Franken

пожалуйста, помогите! проблема gridview

<asp:LinqDataSource ID="dsManualAdjustments" runat="server" ContextTypeName="CAPScheduler.ManualAdjustmentsDataContext" EntityTypeName="" TableName="Manual_Adjustments" Select="new (Comment, Entity_Number, Ref_Id)" Where="Comment == @Comment" >
    <WhereParameters>
        <asp:ControlParameter ControlID="ddlComment" Name="Comment" PropertyName="SelectedValue" Type="String" />
    </WhereParameters>
   </asp:LinqDataSource>


Richard Deeming

Это не "решение". Удалить его.

Если вы хотите обновить свой вопрос, чтобы добавить недостающую информацию, Нажмите зеленую ссылку "улучшить вопрос" и отредактируйте свой вопрос. Не опубликуйте свое обновление как "решение".

NB: Если вы просто хотите "поднять" свой вопрос обратно в список, не делайте этого. Это будет считаться оскорблением.