在编辑模式下GridView控件中的子控件(dropDownList)的绑定问题?
<asp:TemplateField HeaderText="机型名">
<ItemTemplate><%#DataBinder.Eval(Container.DataItem,"机型名")%></ItemTemplate>
<EditItemTemplate><asp:DropDownList ID="innerMachine" DataTextField="MachineName" DataValueField="ID" runat="server" DataSourceID="SqlDataSource3"></asp:DropDownList>
<asp:SqlDataSource ID="SqlDataSource3" runat="server" ConnectionString="<%$ConnectionStrings:ERPConnectionString %>" SelectCommand="SELECT [id], [MachineName] FROM [Machines]"></asp:SqlDataSource>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="客户名">
<ItemTemplate><%#DataBinder.Eval(Container.DataItem,"客户名")%></ItemTemplate>
<EditItemTemplate><asp:DropDownList ID="innerCustomer" runat="server" DataTextField="MachineName" DataValueField="ID" DataSourceID="SqlDataSource4"></asp:DropDownList>
<asp:SqlDataSource ID="SqlDataSource4" runat="server" ConnectionString="<%$ConnectionStrings:ERPConnectionString %>" SelectCommand="Select [id],[CustomerName] from [Customer]" ></asp:SqlDataSource>
</EditItemTemplate>
</asp:TemplateField>
通过这样绑定后,可以在点击GridView控件的编辑按纽后进行子控件 InnerCustomer的绑定,但是我想点击编辑后改变innerCustomer控件的选择项(selectedIndex属性),不知怎么绑定,在什么时候,什么事件中进行绑定最合适?谢了
--------------------编程问答-------------------- 首先,DropDownList的数据源和每一行数据没有关系,就不要加在模板里了,要不每一行都会给你生成一个sqldatasource,数据量比较大,建议将两个sqlDataSource放在GridView控件外,点击编辑之后,可以在RowCommand事件里判断CommandName,然后去进行SelectedValue的绑定 --------------------编程问答-------------------- 有什么参考代码吗?麻烦贴一贴.. --------------------编程问答-------------------- 具体怎么写这个RowCommand事件,有类似的代码吗? --------------------编程问答-------------------- 我是指在RowCommand事件中怎样引用到innerMachine对象. --------------------编程问答-------------------- 用FindControl("innerMachine")呗 --------------------编程问答-------------------- 可以具体一点吗? --------------------编程问答-------------------- 找不到此控件 --------------------编程问答-------------------- 实际上可以直接就绑定啊,在编辑模板时innerMachine的SelectedValue绑定到"机器名"字段,用的是什么版本的VS啊,绑定语法还是那样的,SelectedValue='<%# Bind("机器名")%>' --------------------编程问答--------------------
补充:.NET技术 , ASP.NET