我有一个asp.net绑定到下拉列表的问题,我不知道如何调试.我在堆栈上查看了有关此问题的其他问题,但没有任何帮助.据我所知,它应该选择的"名称"在列表中.
<asp:DropDownList ID="dd1" runat="server" DataSourceID="ADataSource" DataTextField="Name"
DataValueField="Name" SelectedValue='<%# Bind("Name") %>' Width="255"
AppendDataBoundItems="true" TabIndex="3" Font-Size="small" EnableViewState="true" >
<asp:ListItem Text="Select" Value="" />
</asp:DropDownList>
Run Code Online (Sandbox Code Playgroud)
以下是错误
用户代码未处理System.ArgumentOutOfRangeException消息='dd1'具有SelectedValue,该ListValue无效,因为它在项列表中不存在.参数名称:value Source = System.Web ParamName = value StackTrace:位于System.Web的System.Web.UI.WebControls.ListControl.OnDataBinding(EventArgs e)的System.Web.UI.WebControls.ListControl.PerformDataBinding(IEnumerable dataSource)中System.Web.UI.Control.DataBind上的System.Web.UI.Control.DataBindChildren()处的System.Web.UI.UI.WebControls.BaseDataBoundControl.DataBind()处的.UI.WebControls.ListControl.PerformSelect()(Boolean raiseOnDataBinding)在System.Web.UI.Control.DataBind()在System.Web.UI.Control.DataBindChildren()在System.Web.UI.Control.DataBind(布尔raiseOnDataBinding)在System.Web.UI.Control.DataBind() System.Web.UI.Control.Data上的System.Web.UI.Control.DataBind(Boolean raiseOnDataBinding)上的System.Web.UI.Control.DataBindChildren()处于System.Web.UI.Control.DataBind( System.Web.UI.WebCont上的System.Web.UI.WebControls.DetailsView.CreateChildControls(IEnumerable dataSource,Boolean dataBinding)中的System.Web.UI.Control.DataBind(Boolean raiseOnDataBinding)System.Web.UI.DataSourceView上的System.Web.UI.WebControls.DataBoundControl.OnDataSourceViewSelectCallback(IEnumerable data)中的System.Web.UI.WebControls.DetailsView.PerformDataBinding(IEnumerable data)中的rols.CompositeDataBoundControl.PerformDataBinding(IEnumerable data).在System.Web.UI.WebControls.DetailsView.DataBind()的System.Web.UI.WebControls.BaseDataBoundControl.DataBind()上的System.Web.UI.WebControls.DataBoundControl.PerformSelect()中选择(DataSourceSelectArguments参数,DataSourceViewSelectCallback回调)位于System.Web.UI的System.Web.UI.WebControls.GridView.OnSelectedIndexChanged(EventArgs e)的System.EventHandler.Invoke(Object sender,EventArgs e)第233行的storeUpdate.GvStoresSelect_SelectedIndexChanged(Object sender,EventArgs e). System.Web.UI.WebControls.GridView.OnBubbleEvent(对象源,System.Web.UI.WebControls.GridView.HandleEvent(EventArgs e,Boolean causeValidation,String validationGroup)中的WebControls.GridView.HandleSelect(Int32 rowIndex)EventArgs e)位于System.Web.UI.Con.RaiseBubbleEvent的System.Web.UI.WebControls.GridViewRow.OnBubbleEvent(Object source,EventArgs e)的System.Web.UI.Control.RaiseBubbleEvent(Object source,EventArgs args)上. System.Web.UI.WebControls.LinkButton.System上System.Web.UI.WebControls.LinkButton.RaisePostBackEvent(String eventArgument)的System.Web.UI.WebControls.LinkButton.OnCommand(CommandEventArgs e)中的对象源,EventArgs args) System.Web.UI上System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)的System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl,String eventArgument)中的.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument). Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint,Boolean includeStagesAfterAsyncPoint)InnerException:
我加载了gridview,gridview有一个编辑和删除按钮.
我点击编辑,我得到,"ddlAssignedTo' has a SelectedValue which is invalid because it does not exist in the list of items.
Parameter name: value
我知道我收到此错误,因为值fo ddlAssignedTo为null - ddlAssignedTo的db上没有任何内容.
我所要做的就是更新当前值.
所以,我的问题是这个,如果当前值为null,我如何为ddlAssignedTo分配一个默认值,这样如果db上当前没有值,默认值将占优势?
这是一些代码:
标记:
<asp:TemplateField HeaderText="Assigned To">
<EditItemTemplate>
<asp:DropDownList ID="ddlAssignedTo" runat="server"
DataSourceID="SubjectDataSource"
DataTextField="fullname" DataValueField="empl_Id"
SelectedValue='<%# Bind("AssignedTo") %>'>
<asp:ListItem Value="">--Select Name--</asp:ListItem>
</asp:DropDownList>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lblAssigned" runat="server"
Text='<% #Bind("fullname") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
SelectCommand="SELECT Distinct [rownum],[reqnum], AssignedTo, (empl_first + ' ' + empl_last) fullname, [reqrecdate], [reqrecfrom], [skillsets], [application], [hoursperweek], …Run Code Online (Sandbox Code Playgroud)