问题描述
<asp:TemplateFieldHeaderText="机型名"><ItemTemplate><%#DataBinder.Eval(Container.DataItem,"机型名")%></ItemTemplate><EditItemTemplate><asp:DropDownListID="innerMachine"DataTextField="MachineName"DataValueField="ID"runat="server"DataSourceID="SqlDataSource3"></asp:DropDownList><asp:SqlDataSourceID="SqlDataSource3"runat="server"ConnectionString="<%$ConnectionStrings:ERPConnectionString%>"SelectCommand="SELECT[id],[MachineName]FROM[Machines]"></asp:SqlDataSource></EditItemTemplate></asp:TemplateField><asp:TemplateFieldHeaderText="客户名"><ItemTemplate><%#DataBinder.Eval(Container.DataItem,"客户名")%></ItemTemplate><EditItemTemplate><asp:DropDownListID="innerCustomer"runat="server"DataTextField="MachineName"DataValueField="ID"DataSourceID="SqlDataSource4"></asp:DropDownList><asp:SqlDataSourceID="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("机器名")%>'
解决方案十:
该回复于2008-05-09 11:10:22被版主删除