создайте строку фильтра с текстовыми полями в каждом столбце в asp.net gridview - PullRequest
0 голосов
/ 29 ноября 2010

У меня есть представление сетки asp.net, которое я связываю во время выполнения с пользовательским объектом List.Я хочу добавить строку фильтра под строкой заголовка в каждом столбце, и при нажатии кнопки фильтра данные сетки должны фильтроваться на основе значений, записанных в текстовых полях фильтра.требование кажется странным, но это то, что хочет клиент.пожалуйста, помогите с подсказкой.

Ответы [ 2 ]

0 голосов
/ 01 марта 2015

код aspx:

 <asp:TemplateField>
                    <HeaderStyle HorizontalAlign="Center" VerticalAlign="Middle" Width="150px" />
                    <ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" Width="150px" />
                    <HeaderTemplate>
                        <table>
                            <tr>
                                <td align="center">
                                    <asp:ImageButton runat="server" ID="imgFilter1" ImageUrl="../Images/filter.png" Style="height: 20px;
                                        width: 20px;" OnClick="imgFilter1_click" />
                                </td>
                                <td align="center">
                                    <asp:TextBox runat="server" ID="gridTextboxFilter1" AutoPostBack="true" onTextChanged="gridTextboxFilter1_text_changed">
                                    </asp:DropDownList>
                                </td>
                            </tr>
                            <tr>
                                <td align="center" colspan="2">
                                    //your column header
                                </td>
                            </tr>
                        </table>
                    </HeaderTemplate>
                    <ItemTemplate>
                        <asp:Label runat="server" Text='<%# Eval("your_dataFeild") %>'>
                        </asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>

cs код:

private void BindGrid(string strFilter)
        {            
            try
            {
                // Simple created a table to bind with Grid view and 
                // populated it with data.
                DataTable dt = new DataTable("sample");
                dt.Columns.Add("ID");
                dt.Columns.Add("Name");
                DataRow dr ;
                for(int counter=1;counter<11;counter++)
                {
                    dr = dt.NewRow();
                    dr["ID"]=counter.ToString();
                    dr["Name"]= "Cat" + counter.ToString();
                    dt.Rows.Add(dr);
                }

                DataView dv = new DataView(dt);
                if(strFilter != "")
                    dv.RowFilter="Name like '%" + strFilter + "%'";

                if (CategoryFilter == "")
                    gvCategory.DataSource = dv;
                else
                    gvCategory.DataSource = dv;
                gvCategory.DataBind();
            }
            catch (Exception ex)
            {

            }
            finally
            {

            }
        }

        protected void gridTextboxFilter1_text_changed(object sender, EventArgs e)
        {
            string text = ((TextBox)sender).Text;
            BindGrid(text);
        }
0 голосов
/ 29 ноября 2010

Добавьте текстовое поле и кнопку в шаблон заголовка.

Напишите запрос на нажатие кнопки и получите значение.

Запрос что-то вроде select * from tbl, где col как '% val%'

Привязать значение к gridView.

Я думаю, это решит для вас

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...