none
Gridview與DropDownList1 RRS feed

  • 問題

  • Gridview內的editItem Template
    gridview是連接sqldatasource1連結A資料表
    原本是textbox我把它改成DropDownList1
    然後新增一個sqldatasource2去連結B資料表
    當我想要編輯資料
    畫面都顯示

    'DropDownList1' 擁有的 SelectedValue 無效,因為它不在項目清單中。
    參數名稱: value

    描述: 在執行目前 Web 要求的過程中發生未處理的例外情形。請檢閱堆疊追蹤以取得錯誤的詳細資訊,以及在程式碼中產生的位置。

    例外詳細資訊: System.ArgumentOutOfRangeException: 'DropDownList1' 擁有的 SelectedValue 無效,因為它不在項目清單中。
    參數名稱: value

    原始程式錯誤:

    在執行目前 Web 要求期間,產生未處理的例外狀況。如需有關例外狀況來源與位置的資訊,可以使用下列的例外狀況堆疊追蹤取得。

    2009年8月10日 上午 02:02

解答

  • 這個問題應該很簡單, 而且很常見。我認為只是因為資料庫中有一筆資料, 其對應欄位中有一個 DropDownList1 綁定資料所沒有的值。例如 DropDownList1 繫結後有 0,1,2 三個項目, 但資料庫中有一筆資料在該欄位中出現了 3, 就會出現這種錯誤了。
    ASP.NET 2Share - http://phone.idv.tw/cs2/
    • 已標示為解答 Open1008 2009年8月10日 上午 04:36
    2009年8月10日 上午 04:02

所有回覆

  • 1. 這說的是DropDownList設定的SelectValue沒有在項目清單中.
    2. 您沒給程式碼只能猜, 您有一個類似"請選擇"的項目, 然後又用了bind("欄位").

    年度軟體技術盛會微軟Tech.Days 9月22日全新登場, 您還在等什麼? 快報名就對了.


    2009年8月10日 上午 02:15
  • 我沒有寫程式碼= =|||
    我只有設定 Update 那些語法
    做一個連結而已
    2009年8月10日 上午 02:21
  • .aspx中的 html 也是程式碼.....


    年度軟體技術盛會微軟Tech.Days 9月22日全新登場, 您還在等什麼? 快報名就對了.


    2009年8月10日 上午 02:35
  • <asp:TemplateField HeaderText="經理" SortExpression="DepManager">
                    <EditItemTemplate>
                        &nbsp;
                        <asp:DropDownList ID="DropDownList1" runat="server" DataSourceID="SqlDataSource2" DataTextField="PerName" DataValueField="PerNo" SelectedValue='<%# Bind("DepManager") %>' Width="100px">
                        </asp:DropDownList><asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ConnectionStrings:PersonnelDatabaseConnectionString2 %>"
                            SelectCommand="SELECT [PerNo], [PerName] FROM [Personnel]"></asp:SqlDataSource>
                    </EditItemTemplate>
                    <ItemTemplate>
                        <asp:Label ID="Label3" runat="server" Text='<%# Bind("DepManager") %>'></asp:Label>
                    </ItemTemplate>
                    <FooterTemplate>
                        <asp:TextBox ID="AddDepManagerTxb" runat="server" Width="100px"></asp:TextBox>
                    </FooterTemplate>
                </asp:TemplateField>
    2009年8月10日 上午 02:42
  • 應該說
    我想要使DropDownList
    顯示A資料表X欄位

    下拉式選單內的選擇物件
    式顯示B資料表Y欄位 抓取的值是Z值

    當我選擇好我要的值會把Z值放在A資料表X欄位內

    2009年8月10日 上午 02:48
  • 所以這邊您要檢查在A資料表中的X欄位是不是有包含"不在" B資料表的Y欄位.

    年度軟體技術盛會微軟Tech.Days 9月22日全新登場, 您還在等什麼? 快報名就對了.


    2009年8月10日 上午 02:53
  • 我在想是不是有另外一個可能,就是還沒將B資料表Y欄位設定給Dropdown List的Items集合,就執行Gridview的DataBind所造成。

    2009年8月10日 上午 03:03
  • 這個問題應該很簡單, 而且很常見。我認為只是因為資料庫中有一筆資料, 其對應欄位中有一個 DropDownList1 綁定資料所沒有的值。例如 DropDownList1 繫結後有 0,1,2 三個項目, 但資料庫中有一筆資料在該欄位中出現了 3, 就會出現這種錯誤了。
    ASP.NET 2Share - http://phone.idv.tw/cs2/
    • 已標示為解答 Open1008 2009年8月10日 上午 04:36
    2009年8月10日 上午 04:02