zoukankan      html  css  js  c++  java
  • Net中实现Gridview中两个Dropdownlist的级联

    首先要在aspx页面中的gridview中绑定两个模板列:

    <asp:TemplateField HeaderText="品牌">
                        <ItemTemplate>
                            <asp:DropDownList ID="ddlPinPai" runat="server" CssClass="txtInput" AutoPostBack="true"  OnSelectedIndexChanged="ddlPinPai_SelectedIndexChanged"
                            Width="95%" >
                        </asp:DropDownList>
                        <asp:HiddenField ID="txtPinPai" runat="server" Value='<%# Eval("PinPai")%>' />
                        </ItemTemplate>
                        <ItemStyle Width="10%" />
                        <HeaderStyle Width="10%" />
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="车辆型号">
                        <ItemTemplate>
                            <asp:DropDownList ID="ddlCarType" runat="server" Width="100%"  
                           CssClass="txtInput">
                        </asp:DropDownList>
                         <asp:HiddenField ID="txtCarType" runat="server" Value='<%# Eval("CarType")%>' />
                        </ItemTemplate>
                        <ItemStyle Width="15%" />
                        <HeaderStyle Width="15%" />
                    </asp:TemplateField>

    -------------------------------------------------------

    让后在这个gridview中的OnRowDataBound事件中进行数据源初始绑定:

     #region
                    DropDownList ddlPinPai = e.Row.FindControl("ddlPinPai") as DropDownList;
                    DropDownList ddlCarType = e.Row.FindControl("ddlCarType") as DropDownList;
              

                  
                    //绑定品牌
                    DataTable dt = new SqlSupplier().GetPinPai();
                    ddlPinPai.DataTextField = "PinPaiName";
                    ddlPinPai.DataValueField = "PkId";
                    ddlPinPai.DataSource = dt;
                    ddlPinPai.DataBind();
                    ddlPinPai.Items.Insert(0, new ListItem("", ""));
                    ddlPinPai.SelectedValue = ((HiddenField)e.Row.FindControl("txtPinPai")).Value;
                 
                    ////绑定车型号
                    DataTable dtCarType = sql.GetCarTypeBind();
                    ddlCarType.DataTextField = "CarTypeName";
                    ddlCarType.DataValueField = "PinPaiId";
                    ddlCarType.DataSource = dtCarType;
                    ddlCarType.DataBind();
                    ddlCarType.Items.Insert(0, new ListItem("", ""));            
                    #endregion

    *----------------------------------------------------------------------------

     protected void ddlPinPai_SelectedIndexChanged(object sender, EventArgs  e)
            {
              
                DropDownList ddlPinPai = (DropDownList)sender;
                System.Web.UI.WebControls.GridViewRow dvr = (System.Web.UI.WebControls.GridViewRow)ddlPinPai.NamingContainer;
                DropDownList ddlCarType = (DropDownList)dvr.FindControl("ddlCarType");
                DataTable dtCarType = sql.GetCarTypeBind(ddlPinPai.SelectedValue.ToString());
                ddlCarType.DataTextField = "CarTypeName";
                ddlCarType.DataValueField = "PinPaiId";
                ddlCarType.DataSource = dtCarType;
                ddlCarType.DataBind();
                ddlCarType.Items.Insert(0, new ListItem("", ""));
               
            }

    这应该就能看懂了吧,如果还不行,请联系博主

    这些都是博主多年积累的,有些可能是别人的,但博主已经不记得来自哪里了,就不特殊标出了,望见谅!!!!
  • 相关阅读:
    搜索回车跳转页面
    登录验证码
    【排序算法】排序算法之插入排序
    PAT 乙级 1044 火星数字 (20 分)
    PAT 甲级 1035 Password (20 分)
    PAT 甲级 1041 Be Unique (20 分)
    PAT 甲级 1054 The Dominant Color (20 分)
    PAT 甲级 1027 Colors in Mars (20 分)
    PAT 甲级 1083 List Grades (25 分)
    PAT 甲级 1005 Spell It Right (20 分)
  • 原文地址:https://www.cnblogs.com/objectxhy/p/5911902.html
Copyright © 2011-2022 走看看