asp.netのドロップダウンリストへのバインディングに問題があり、デバッグ方法の手がかりがありません。私はこれについての他の質問をスタックでチェックアウトしたが、何も助けてくれなかった。私が見る限り、選択すべき "名前"はリストにあります。にはSelectedValueがありますが、これはアイテムのリストに存在しないため無効です。どのようにデバッグしますか?
<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>
以下のエラー
System.ArgumentOutOfRangeExceptionが、ユーザーコードで未処理だった メッセージ=「DD1」は、項目のリストに存在しないため無効であるSelectedValueのを持っています。 パラメータ名:値 ソース= System.Webの のparamName =値 のStackTrace:System.Web.UI.WebControls.ListControl.OnDataBindingでSystem.Web.UI.WebControls.ListControl.PerformDataBinding(IEnumerableを のdataSource) で ( System.Web.UI.Control.DataBindChildren() at System.Web.UI.WebControls.BaseDataBoundControl.DataBind() at System.Web.UI.WebControls.ListControl.PerformSelect() System.Web.UI.Control.DataBind()のSystem.Web.UI.Control.DataBind()の のWeb.UI.Control.DataBind(ブール値のraiseOnDataBinding) (System.Web.UI.Control.DataBindChildren()) System.Web.UI.Control.DataBind(Boolean raiseOnDataBinding) at System.Web.UI.Control.DataBind() at System.Web.UI.Control.DataBindChildren() at System.Web.UI.Control .DataBind(Boolean raiseOnDataBinding) at System.Web.UI.Control.DataBind() at System.Web.UI.Control.DataBindChildren() at System.Web.UI.Control.DataBind(Boolean raiseOnDataBinding) at System System.Web.UI.WebControls.DetailsView.PerformDataBindingでSystem.Web.UI.WebControls.CompositeDataBoundControl.PerformDataBindingで.Web.UI.WebControls.DetailsView.CreateChildControls(IEnumerableを データソース、ブールのdataBinding) (IEnumerableを データ) ( IEnumerable System.Web.UI.DataSourceView.Select(DataSourceSelectArguments 引数、DataSourceViewSelectCallbackコールバック)System.Web.UI.WebControlsで でSystem.Web.UI.WebControls.DataBoundControl.OnDataSourceViewSelectCallback(IEnumerableを データ) でデータ) 。ライン233におけるstoreUpdate.GvStoresSelect_SelectedIndexChanged(オブジェクト送信者、のEventArgs電子)でSystem.Web.UI.WebControls.DetailsView.DataBindでSystem.Web.UI.WebControls.BaseDataBoundControl.DataBindでDataBoundControl.PerformSelect() () () at System.EventHandler.Invoke(Object sender、EventArgs e) at System.Web.UI.WebControls.GridView.OnSelectedIndexChanged(EventArgs e)System.Web.UI.WebControls.GridView.HandleSelect(のInt32 rowIndexプロパティ)System.Web.UI.WebControls.GridView.HandleEventで (EventArgsの電子、ブールcausesValidation、文字列validationGroup)System.Web.UI.WebControlsで で。 System.Web.UI.WebControls.GridViewRow.OnBubbleEventでSystem.Web.UI.Control.RaiseBubbleEvent(オブジェクトソース、のEventArgsの引数) でGridView.OnBubbleEvent(オブジェクトソース、のEventArgs電子) (オブジェクトソース、E EventArgs)を System.Web.UI.WebControls.LinkButtonのSystem.Web.UI.WebControls.LinkButton.OnCommand(CommandEventArgs e) のSystem.Web.UI.Control.RaiseBubbleEvent(オブジェクトソース、EventArgsのargs)で 。System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl、文字列eventArgumentでRaisePostBackEvent System.Web.UI.WebControls.LinkButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(文字列 eventArgument)で(文字列 eventArgument) )System.Web.UI.Page.ProcessRequestMain(ブールincludeStagesBeforeAsyncPoint、ブールのincludeStagesAfterAsyncPoint) のInnerExceptionでSystem.Web.UI.Page.RaisePostBackEvent(NameValueCollectionのPOSTDATA) で:
使用しようとしている値が離れていますか? – chobo2
コントロールの外側で '<%#Eval(" Name ")%>'を使用して、ロードする内容を確認してください。 –