EditItemTemplate> <FONT face="宋体"> <asp:DropDownList id=Dropdownlist1 runat="server" Width="96px" DataSource="<%# ds %>" DataTextField="city" DataValueField="city" DataMember="cities" SelectedIndex='<%# city_index(databinder.eval(container.dataitem,"city")) %>'> </asp:DropDownList></FONT> </EditItemTemplate>代码: Function city_index(ByVal city As String) As Integer Dim cn As SqlConnection = New SqlConnection(connection1.connstr) Dim cmd As SqlCommand = New SqlCommand("select distinct city from employees", cn) Dim cityhash As New Hashtable() Dim dr As SqlDataReader, i As Integer = 0 cn.Open() dr = cmd.ExecuteReader() While dr.Read cityhash(dr("city")) = i i = i + 1 End While cn.Close() Return cityhash(city) End Function另外把ds设成页面变量 private ds as new dataset()再写代码填充
1、对DataGrid绑定;
2、用FindControl方法找到那个DropDownList;
3、用DropDownList的ItemCollection的FindByValue或FindByText方法找到需要选定的项,然后把它的Selected属性设为true;
示例:
void mydatagrid_OnEditCommand(object src,DataGridCommandEventArgs e){
mydatagrid.EditItemIndex=e.Item.ItemIndex;
BindData();//这是对DataGrid进行数据绑定的一个方法,自己写
DropDownList ddl=(DropDownList)mydatagrid.Items[mydatagrid.EditItemIndex].FindControl("mydropdownList");
if(ddl!=null)
ddl.Items.FindByValue("我的选项").Selected=true;
}
没用DataGrid时间长了,以前的代码也不在身边,不知道上面临时写的代码能不能运行,但大致操作步骤已经说清楚了,自己慢慢看看。
<FONT face="宋体">
<asp:DropDownList id=Dropdownlist1 runat="server" Width="96px" DataSource="<%# ds %>" DataTextField="city" DataValueField="city" DataMember="cities" SelectedIndex='<%# city_index(databinder.eval(container.dataitem,"city")) %>'>
</asp:DropDownList></FONT>
</EditItemTemplate>代码:
Function city_index(ByVal city As String) As Integer
Dim cn As SqlConnection = New SqlConnection(connection1.connstr)
Dim cmd As SqlCommand = New SqlCommand("select distinct city from employees", cn)
Dim cityhash As New Hashtable()
Dim dr As SqlDataReader, i As Integer = 0
cn.Open()
dr = cmd.ExecuteReader() While dr.Read
cityhash(dr("city")) = i
i = i + 1
End While
cn.Close()
Return cityhash(city)
End Function另外把ds设成页面变量
private ds as new dataset()再写代码填充
可是我搞不清的是,绑定DataGrid1中的下拉列表的选项和默认值时,该放在哪个对象的哪个事件里??
还有,该事件触发的事件代码是放在mypage.ASPX页面中还是ASPX页面的后台编码文件mypage.ASPX.cs中呢?
没有一次成功过。
................
DropDownList ddl=(DropDownList)mydatagrid.Items[mydatagrid.EditItemIndex].FindControl("mydropdownList");
if(ddl!=null)
{
ddl.Items.FindByValue("我的选项").Selected=true;
//***********结果永远也不能执行上面这一句***********
}
.............................
哪位兄弟能给个完整的页面看看吗?我明天要交软件了,头痛啊!