Показать запись в представлении сетки на основе раскрывающегося списка, начальной и конечной даты, введенных в текстовое поле.

Мне нужно показать мои данные в представлении сетки на основе моего раскрывающегося списка, даты и даты, когда данные вводятся в текстовое поле. Как я могу это сделать? То, что я сделал до сих пор, я создал две страницы. На первой странице у меня есть выпадающий список и форма. Когда я выбираю значение из раскрывающегося списка, появляется форма для выбранного значения, и пользователь может ввести в нее данные и отправить эту форму. После отправки данных сохраняем в БД. На второй странице у меня есть представление сетки, в котором можно увидеть сохраненное значение, выпадающий список, текстовое поле с датой и датой, теперь я хочу показать записи в представлении сетки на основе моего раскрывающегося списка, даты и даты.

Код для второй формы:

<asp:DropDownList ID="ddlPortal" runat="server" AutoPostBack="True" 
       onselectedindexchanged="ddlPortal_SelectedIndexChanged">
       <asp:ListItem>TRAVELONG</asp:ListItem>
       <asp:ListItem>ONETRAVEL</asp:ListItem>
       <asp:ListItem>.UK-BSP</asp:ListItem>
       <asp:ListItem>.CA-YYZ</asp:ListItem>
       <asp:ListItem>.CA-YVR</asp:ListItem>
       <asp:ListItem>Partial MCO Refund</asp:ListItem>
   </asp:DropDownList>
   <asp:Label ID="lbFrom" Text="From" runat="server" />&nbsp;<asp:TextBox ID="tbFrom" runat="server" />
    &nbsp;<asp:Label ID="lblto" Text="To" runat="server" />&nbsp;<asp:TextBox ID="tbTo" runat="server" />
    &nbsp;<asp:Button ID="btnSearch" runat="server" Text="Search" 
    onclick="btnSearch_Click" />

Подробности GridView:

 <asp:GridView ID="GridView1" runat="server" CellPadding="4" ForeColor="#333333" 
        GridLines="None" onrowcommand="GridView1_RowCommand" 
        AutoGenerateColumns="False">
        <Columns>
       <asp:TemplateField HeaderText="Query">
            <itemtemplate>
            <asp:LinkButton CommandName="cmdBind"  runat="server"  Text='<%#Eval("ID")%>' ID="ID" ToolTip='<%#Eval("ID")%>'>LinkButton
            </asp:LinkButton>                                                                   
            </itemtemplate>
            </asp:TemplateField>
       <asp:BoundField DataField="Portal" HeaderText="Portal" />
        <asp:BoundField DataField="TID" HeaderText="TID" />
        <asp:BoundField DataField="PNR" HeaderText="PNR" />
        <asp:BoundField DataField="TicketNumber" HeaderText="Ticket Number" />
        <asp:BoundField DataField="ESACCode" HeaderText="ESACCode" />
        <asp:BoundField DataField="WaiverCode" HeaderText="WaiverCode" />
        <asp:BoundField DataField="Remarks" HeaderText="Remarks" />
        <asp:BoundField DataField="UnusedTicketAmount" HeaderText="UnusedTicketAmount" />
        <asp:BoundField DataField="ddlUnusedAmount" HeaderText="ddlUnusedAmount" />
        <asp:BoundField DataField="AirlinePenality" HeaderText="AirlinePenality" />
        <asp:BoundField DataField="ddlAirlinePenality" HeaderText="ddlAirlinePenality" />
        <asp:BoundField DataField="NetRefundProcess" HeaderText="NetRefundProcess" />
        <asp:BoundField DataField="ddlNetRefundProcess" HeaderText="ddlNetRefundProcess" />
        <asp:BoundField DataField="RefundableCommission" HeaderText="RefundableCommission" />
        <asp:BoundField DataField="ddlRefundableCommission" HeaderText="ddlRefundableCommission" />
        <asp:BoundField DataField="CouponRefunded" HeaderText="CouponRefunded" />
        <asp:BoundField DataField="RefundType" HeaderText="RefundType" />
    </Columns>       

Я хочу написать код при нажатии кнопки, но я не знаю, как это сделать. Можете ли вы помочь мне в этом?

CS-файл:

protected void btnSearch_Click(object sender, EventArgs e)
{

}  

person amitesh    schedule 20.03.2013    source источник


Ответы (1)


Если вы используете DataTable для привязки вашего GridView, вы можете отфильтровать данные и снова привязать свой GridView.

Вы можете использовать: DataView Свойство .RowFilter для фильтрации данных.

Eg.:

DataTable dt= GetData();
DataView dv = dt.DefaultView;
dv.RowFilter = "Portal= '" + ddlPortal.SelectedValue.Trim() + "'" 
GridView1.DataSource=dv;
GridView1.DataBind();

Кроме того, вы можете использовать LINQ для фильтрации данных:

DataTable dt= GetData();
EnumerableRowCollection<DataRow> query =
    from row in dt.AsEnumerable()
    where row.Field<String>("Portal") == ddlPortal.SelectedValue.Trim()
    select row;

DataView dv = query.AsDataView();
GridView1.DataSource=dv;
GridView1.DataBind();
person Kapil Khandelwal    schedule 20.03.2013
comment
мне нужно привязать данные к событию нажатия кнопки или создать для него метод - person amitesh; 20.03.2013
comment
Это зависит от тебя. Вы можете создать метод. И при нажатии кнопки вызовите его и передайте ему необходимые параметры. - person Kapil Khandelwal; 20.03.2013
comment
какая польза от GetData() - person amitesh; 20.03.2013
comment
Это ваш метод получения источника формы данных (база данных). - person Kapil Khandelwal; 20.03.2013
comment
я не понял, у меня уже есть данные в моем представлении сетки из базы данных, предположим, я выбрал TRAVELONG из раскрывающегося списка на моей второй странице, я хочу показать только Data releter для TRAVELONG в сетке, я надеюсь, вы понимаете, что я хочу - person amitesh; 20.03.2013
comment
Я нашел одно решение, но оно предназначено только для выпадающего списка. Мне также нужен диапазон дат, это ссылка, которая мне поможет c-sharpcorner.com/UploadFile/718fc8/ - person amitesh; 20.03.2013