如题:我在datagrid中定义了两个模板列,并在其中拖入了dropdownlist控件,我在点击datagrid的编辑后,通过选择第一个dropdownlist的值来触发它的事件,绑定第二个dropdownlist的值第一个dropdownlist的绑定已经写好了,如何触发的它的SelectedIndexChanged事件呢?
我在前台代码里已经写了 OnSelectedIndexChanged="我后台定义的函数" AutoPostBack=true;
并且在后台我定义的函数是public 或protected的 两种情况我都试了,
为什么还是没有触发它的SelectedIndexChanged事件呢?
要在datagrdiItemDataBound里写代码吗?
我在是create中写的,困惑中……
请高手解答!!!!!!

解决方案 »

  1.   

    或者你这么写
                <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" Width="100%"
                    OnRowDataBound="GridView1_RowDataBound">
                    <Columns>
                        <asp:TemplateField HeaderText="a">
                            <ItemTemplate>
                                <asp:LinkButton ID="lbnOrganizationId" Text='<%#Bind("a") %>' runat="server"></asp:LinkButton>
                            </ItemTemplate>
                        </asp:TemplateField>
                        <asp:TemplateField HeaderText="a">
                            <ItemTemplate>
                                <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="true">
                                </asp:DropDownList>
                            </ItemTemplate>
                        </asp:TemplateField>
                    </Columns>
                </asp:GridView>    protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                DataTable dt = new DataTable();
                dt.Columns.Add("a");
                dt.Columns.Add("b");
                for (int i = 0; i <= 10; i++)
                {
                    DataRow dr = dt.NewRow();
                    dr["a"] = "a" + i;
                    dr["b"] = "b" + i;
                    dt.Rows.Add(dr);
                }
                GridView1.DataSource = dt;
                GridView1.DataBind();
            }
            for (int i = 0; i < GridView1.Rows.Count; i++)
            {
                DropDownList DropDownList1 = GridView1.Rows[i].FindControl("DropDownList1") as DropDownList;
                DropDownList1.SelectedIndexChanged += new EventHandler(DropDownList1_SelectedIndexChanged);
            }
        }