datagrid里含编辑模板的下拉框,是一个数据表admin_selfbusinfo,内容“11”"22""33"绑定了.我的意思是点击编辑时如果原来datagrid数据表中的保存的是“22”编辑时自动“22”为选择状态,但现在如果datagrid数据表中的保存的是"22"或"33"点击编辑时就出错,如果为11时点击编辑就对的
System.ArgumentOutOfRangeException: 指定的参数已超出有效值的范围。参数名: value
不知道为何?<asp:TemplateColumn SortExpression="busnumber" HeaderText="车牌号">
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem,"busnumber") %>
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList id="busnumber1" DataValueField="busnumber" DataTextField="busnumber" DataSource='<%# getcompany(DataBinder.Eval(Container.DataItem,"busnumber").tostring().trim())%>' SelectedIndex='<%# DataBinder.Eval(Container.DataItem,"busnumber").tostring().trim() %>' Runat="server">
</asp:DropDownList>
</EditItemTemplate>
</asp:TemplateColumn>
/////////// 后台
Sub bindgrid(ByVal sortfield As String)
Dim objcmd As SqlDataAdapter
Dim objds As DataSet
Dim sqlstr As String
objconn = New SqlConnection(strdsn)
sqlstr = "SELECT rtrim(ltrim(a.busnumber)) as busnumber,a.feeid,a.feetype,a.money,rtrim(ltrim(a.reason)) as reason,rtrim(ltrim(a.note)) as note,a.staff,a.staffdate, rtrim(ltrim(b.chname)) as chname FROM admin_selfbusmanage a INNER JOIN admin_busfeetype b ON a.feetype = b.id"
objcmd = New SqlDataAdapter(sqlstr, objconn)
objds = New DataSet
objcmd.Fill(objds, "aa")
'绑定车牌
objcmd.SelectCommand = New SqlCommand("select rtrim(ltrim(busnumber)) as busnumber from admin_selfbusinfo", objconn)
objcmd.Fill(objds, "admin_selfbusinfo")
busnumber1 = objds.Tables("admin_selfbusinfo").DefaultView Dim source As DataView = objds.Tables("aa").DefaultView
source.Sort = sortfield
DataGrid1.DataSource = source
DataGrid1.DataBind() End Sub Function getcompany(ByVal compid As Integer) As DataView
Return busnumber1 End Function
System.ArgumentOutOfRangeException: 指定的参数已超出有效值的范围。参数名: value
不知道为何?<asp:TemplateColumn SortExpression="busnumber" HeaderText="车牌号">
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem,"busnumber") %>
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList id="busnumber1" DataValueField="busnumber" DataTextField="busnumber" DataSource='<%# getcompany(DataBinder.Eval(Container.DataItem,"busnumber").tostring().trim())%>' SelectedIndex='<%# DataBinder.Eval(Container.DataItem,"busnumber").tostring().trim() %>' Runat="server">
</asp:DropDownList>
</EditItemTemplate>
</asp:TemplateColumn>
/////////// 后台
Sub bindgrid(ByVal sortfield As String)
Dim objcmd As SqlDataAdapter
Dim objds As DataSet
Dim sqlstr As String
objconn = New SqlConnection(strdsn)
sqlstr = "SELECT rtrim(ltrim(a.busnumber)) as busnumber,a.feeid,a.feetype,a.money,rtrim(ltrim(a.reason)) as reason,rtrim(ltrim(a.note)) as note,a.staff,a.staffdate, rtrim(ltrim(b.chname)) as chname FROM admin_selfbusmanage a INNER JOIN admin_busfeetype b ON a.feetype = b.id"
objcmd = New SqlDataAdapter(sqlstr, objconn)
objds = New DataSet
objcmd.Fill(objds, "aa")
'绑定车牌
objcmd.SelectCommand = New SqlCommand("select rtrim(ltrim(busnumber)) as busnumber from admin_selfbusinfo", objconn)
objcmd.Fill(objds, "admin_selfbusinfo")
busnumber1 = objds.Tables("admin_selfbusinfo").DefaultView Dim source As DataView = objds.Tables("aa").DefaultView
source.Sort = sortfield
DataGrid1.DataSource = source
DataGrid1.DataBind() End Sub Function getcompany(ByVal compid As Integer) As DataView
Return busnumber1 End Function
我想你要解决的问题跟我前不久一样的,用思归大哥的方法最简单!