2010-10-11 59 views
1

你好,我有一個在編輯模式和只讀模式的下拉列表。如果用戶上傳圖片,我希望他們爲上傳的圖片選擇一個類別,並將其顯示在gridview中(如下圖所示)。 當我在編輯和項目模板模式中包括「SelectedValue ='<%#綁定(」CategoryID「)」,我得到這個錯誤「'PictureReadOnlyCategories'有一個SelectedValue無效,因爲它不存在於項目列表中。 參數名稱:值「編輯和只讀模式的下拉列表

當我從編輯和項目模板中刪除」SelectedValue ='<%#綁定(「CategoryID」)「,我得到下面的圖片(截圖)的結果。如果你可以看到下面的圖片,這個類別沒有被選中,它只是顯示 - 沒有類別 - 即使當我選擇一個類別的圖片。

我希望當一張圖片上傳,我選擇類別,以顯示在gridview上。該錯誤消息的代碼如下:

  <EditItemTemplate> 
       <asp:DropDownList ID="pictureEditCategories" runat="server" 
        AppendDataBoundItems="True" 
       DataSourceID="categoriesDataSource" 
        DataTextField="Name" DataValueField="CategoryID" 
        SelectedValue='<%# Bind("CategoryID") %>' ValidationGroup="PictureEdit" > 
        <asp:ListItem Value="" Text="--No Category -- "/> 
       </asp:DropDownList> 
      </EditItemTemplate> 

      <ItemTemplate> 
       <asp:DropDownList ID="PictureReadOnlyCategories" runat="server" 
        AppendDataBoundItems="True" DataSourceID="categoriesDataSource" 
        DataTextField="Name" DataValueField="CategoryID" Enabled="False" 
        SelectedValue='<%# Bind("CategoryID") %>' ValidationGroup="PictureEdit" 
        > 
        <asp:ListItem Value="">-- No Category --</asp:ListItem> 
       </asp:DropDownList> 
      </ItemTemplate> 
     </asp:TemplateField> 
     <asp:TemplateField HeaderText="Title" SortExpression="Title"> 
      <EditItemTemplate> 
       <asp:TextBox ID="TextBox1" runat="server" EnableViewState="False" 
        Text='<%# Bind("Title") %>'></asp:TextBox> 
       <asp:RequiredFieldValidator ID="RequiredFieldValidator4" runat="server" 
        ControlToValidate="TextBox1" Display="Dynamic" 
        ErrorMessage="must enter a title" ValidationGroup="PictureEdit"></asp:RequiredFieldValidator> 
      </EditItemTemplate> 
      <ItemTemplate> 
       <asp:Label ID="Label1" runat="server" Text='<%# Bind("Title") %>'></asp:Label> 
      </ItemTemplate> 
     </asp:TemplateField> 
     <asp:TemplateField HeaderText="Description" SortExpression="Description"> 
      <EditItemTemplate> 
       <asp:TextBox ID="TextBox2" runat="server" Columns="25" Rows="4" 
        Text='<%# Bind("Description") %>' TextMode="MultiLine"></asp:TextBox> 
       <asp:RequiredFieldValidator ID="RequiredFieldValidator5" runat="server" 
        ControlToValidate="TextBox2" Display="Dynamic" 
        ErrorMessage="you must enter a description" ValidationGroup="PictureEdit"></asp:RequiredFieldValidator> 
      </EditItemTemplate> 
      <ItemTemplate> 
       <asp:Label ID="Label2" runat="server" Text='<%# Bind("Description") %>'></asp:Label> 
      </ItemTemplate> 
     </asp:TemplateField> 
     <asp:TemplateField HeaderText="Date Added" SortExpression="UploadedOn"> 
      <EditItemTemplate> 
       <asp:Label ID="Label4" runat="server" Text='<%# Bind("UploadedOn") %>'></asp:Label> 
      </EditItemTemplate> 
      <ItemTemplate> 
       <asp:Label ID="Label3" runat="server" Text='<%# Bind("UploadedOn") %>'></asp:Label> 
      </ItemTemplate> 
     </asp:TemplateField> 
     <asp:ImageField DataImageUrlField="PictureID" 
      DataImageUrlFormatString="~/UploadedImages/{0}.jpg" HeaderText="Image" 
      ReadOnly="True"> 
      <ControlStyle Width="100px" /> 
     </asp:ImageField> 
    </Columns> 
    <EditRowStyle BackColor="#2461BF" /> 
    <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" /> 
    <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" /> 
    <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" /> 
    <RowStyle BackColor="#EFF3FB" /> 
    <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" /> 
    <SortedAscendingCellStyle BackColor="#F5F7FB" /> 
    <SortedAscendingHeaderStyle BackColor="#6D95E1" /> 
    <SortedDescendingCellStyle BackColor="#E9EBEF" /> 
    <SortedDescendingHeaderStyle BackColor="#4870BE" /> 
</asp:GridView> 

當我從項目和編輯模板中刪除的SelectedValue = '<%#綁定( 「類別ID」)%>',我得到下面的圖片的結果。 請,我會感謝您的幫助。

請您可以編輯代碼或解釋給我,因爲我還在學習ASP.net

alt text

回答

-1

問題回答

您有一個包含兩個參數的參數化查詢定義數據源:

@CategoryID @UserID

豪ver,你似乎只是通過控制參數填充其中一個參數。

修復這應該是很容易的,你從查詢字符串變量在你和其他數據源已經拉動了用戶名。您應該能夠將QueryStringParameter複製到您的照片DataSource的SelectParameters列表中。下面重點:

你也可以處理數據源的選擇事件,並設置編程的查詢方式,用戶名,但上述選項是最容易的。我只是想讓你知道你的所有選擇。

+0

爲了幫助其他可能與您有類似問題的人,是否可以提供您發現的解決方案? – 2010-10-18 22:09:05

+0

onfire4JesusCollins 2010-10-19 14:24:42

+0

我缺少 in 查看上面的解釋 – onfire4JesusCollins 2010-10-19 14:26:44

相關問題