如何根据下拉列表选择在Girdview中显示数据 [英] how to show data in Girdview based on dropdown Selection

查看:43
本文介绍了如何根据下拉列表选择在Girdview中显示数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我希望根据下拉选择值在gridview中显示一些数据

I want display some datas in gridview based on dropdown selected value

 <asp:DropDownList ID="ddlStatus" runat="server"  AutoPostBack="true" 

        onselectedindexchanged="ddlStatus_SelectedIndexChanged">
      <asp:ListItem>NewOrder</asp:ListItem>
    <asp:ListItem>Ready</asp:ListItem>
   <asp:ListItem>Canceled</asp:ListItem>
   <asp:ListItem>Shipped</asp:ListItem>
   <asp:ListItem>Delivered</asp:ListItem>
    </asp:DropDownList>
<asp:GridView ID="GridView1" runat="server" CellPadding="4" GridLines="None" 

        DataKeyNames="OrderId" ForeColor="#333333" Style="position: static"    

        AutoGenerateColumns="False"  CssClass="gridview" 

        onrowdeleting="GridView1_RowDeleting" AllowPaging="True" PageSize="5" 

        onpageindexchanging="GridView1_PageIndexChanging" onrowediting="EditCustomer" 

        onrowupdating="UpdateCustomer" 

        onrowcancelingedit="GridView1_RowCancelingEdit" 

        onrowdatabound="GridView1_RowDataBound">
            <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
        <RowStyle BackColor="#EFF3FB" />
        <EditRowStyle BackColor="#2461BF" />
        <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
        <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
        <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="Lime" />
        <AlternatingRowStyle BackColor="White" />
        <Columns>
        <asp:TemplateField HeaderText="Order No">
        <ItemTemplate>
         <asp:Label ID="lblno" runat="server" Text='<%#Eval("OrderId") %>'></asp:Label>
        </ItemTemplate>
        </asp:TemplateField>
      <asp:TemplateField HeaderText="Customer Name">
        <ItemTemplate>
         <asp:Label ID="Custname" runat="server" Text='<%#Eval("UserName") %>'></asp:Label>
        </ItemTemplate>
        </asp:TemplateField>
         <asp:TemplateField HeaderText="Image">
        <ItemTemplate>
        <asp:Image ID="image" runat="server" ImageUrl='<%# "GridviewImage.ashx?ImID=" + Eval("productid")%>' Width="100" Height="100" />
        </ItemTemplate>
        </asp:TemplateField>
         <asp:TemplateField HeaderText="OrderDate">
        <ItemTemplate>
        <asp:Label ID="bname" runat="server" Text='<%#Eval("OrderDate") %>'></asp:Label>
        </ItemTemplate>
        </asp:TemplateField>
           <asp:TemplateField HeaderText="Price">
        <ItemTemplate>
        <asp:Label ID="cost" runat="server" Text='<%#Eval("OrderAmount") %>'></asp:Label>
        </ItemTemplate>
        </asp:TemplateField>
    <asp:TemplateField HeaderText = "Order Status">
    <ItemTemplate>
        <asp:Label ID="lblstatus" runat="server" Text='<%# Eval("StatusDescription")%>'></asp:Label>
    </ItemTemplate>
    <EditItemTemplate>
            <asp:Label ID="lblstatus" runat="server" Text='<%# Eval("StatusDescription")%>' Visible = "false"></asp:Label>
    <asp:DropDownList ID = "ddlstatus" runat = "server">
     <asp:ListItem>New Order</asp:ListItem>
    <asp:ListItem>Ready</asp:ListItem>
   <asp:ListItem>Canceled</asp:ListItem>
   <asp:ListItem>Shipped</asp:ListItem>
   <asp:ListItem>Delivered</asp:ListItem>
    </asp:DropDownList>
    </EditItemTemplate>
    </asp:TemplateField>
    <asp:CommandField ShowEditButton="True" />
</Columns>
 <EmptyDataTemplate>
<strong>There are no Orders.</strong>
</EmptyDataTemplate>
 </asp:GridView>



我的cs代码为


My cs code as

private void BindDatastatus()
    {
        try
        {
            SqlCommand com = new SqlCommand("rsa_products_sp_GetadminordersortbyStatus", con);
            com.CommandType = CommandType.StoredProcedure;
            string stat = ddlStatus.SelectedValue.ToString();
            com.Parameters.AddWithValue("@status", stat);
            da = new SqlDataAdapter(com);
            ds = new DataSet();
            da.Fill(ds);
            GridView1.DataSource = ds;
            GridView1.DataBind();
            GridView1.Attributes.Add("bordercolor", "black");
        }
        catch (Exception ex)
        {
        }
    }




protected void ddlStatus_SelectedIndexChanged(object sender, EventArgs e)
   {
       try
       {
           BindDatastatus();
       }
       catch (Exception ex)
       {
       }
   }



我存储的程序


My stored Procedure

CREATE proc [dbo].[rsa_products_sp_GetadminordersortbyStatus] (@status varchar)
as
select OrderId,
OrderDate,OrderAmount,StatusDescription,productid,
isnull((Select [UserName] from rsa_Users WHERE [UserId]=rsa_Order.UserId),'NA')'UserName',
isnull(NetAmount,0)'NetAmount'
from rsa_Order
where active=1 and StatusDescription=@status

GO

< br $> b $ b



它没有在网格中显示我做错了什么,请帮我解决这个问题。谢谢




Its not showing anything in the grid what i'm doing wrong please help me to solve this.Thanks

推荐答案

如果您没有包含所有状态的大量记录,请一次性检索所有记录,而不是一次又一次地访问数据库。



然后您可以根据需要编写linq查询来过滤数据。
If you dont have tons of records including all statuses, have all records retrieved once instead of hitting database again and again.

You can then write linq queries to filter data as per your need.


这篇关于如何根据下拉列表选择在Girdview中显示数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆