11

ドロップダウンリストへの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>

以下はエラーです

System.ArgumentOutOfRangeException はユーザー コードによって処理されませんでした Message='dd1' には、アイテムのリストに存在しないため無効な SelectedValue があります。パラメーター名: 値 Source=System.Web ParamName=value StackTrace: System.Web.UI.WebControls.ListControl.PerformDataBinding(IEnumerable dataSource) で System.Web.UI.WebControls.ListControl.OnDataBinding(EventArgs e) で System.Web .UI.WebControls.ListControl.PerformSelect() で System.Web.UI.WebControls.BaseDataBoundControl.DataBind() で System.Web.UI.Control.DataBindChildren() で System.Web.UI.Control.DataBind(Boolean raiseOnDataBinding) System.Web.UI.Control.DataBind() で System.Web.UI.Control.DataBindChildren() で System.

4

8 に答える 8

9

SelectedValue プロパティに渡されるからの値が<%# Bind("Name") %>、そのコレクション内の項目と一致しません。最も考えられる原因:

  • リストがバインドされる前に評価が行われるため、DropDownList には項目がありません
  • リストはバインドされていますが、この特定の値がありません
  • 返される値は null の可能性があります
于 2013-02-01T20:21:55.767 に答える
3

DataBind stinks. I tried all the suggestions mentioned and none of them worked. Ended up setting SelectedValue to null, clearing all the items (myDDL.Items.Clear()), and then iterating through my list and manually adding new ListItems - myDDL.Items.Add(new ListItem(myListEntry.Text,myListEntry.Value))

于 2015-09-10T15:13:55.417 に答える
1

私も同じ問題を抱えていました。これが何が起こっていたかです。私はもともとドロップダウンリストにないものに値を設定していました。元の値がドロップダウン リストに表示したい値に含まれていない場合、機能しません。たとえば、最初にデータに Fred が含まれていた場合、そのドロップダウン リストに Fred を含める必要があります。

于 2015-01-13T19:32:22.667 に答える