2008-08-22 41 views
4

我有一個表格視圖,在編輯模板我有兩個下拉菜單。 下拉列表1明確設置了允許值列表。它也被設置爲autopostback。 掉落下來2數據綁定到一個ObjectDataSource,此的ObjectDataSource使用第一下拉,因爲它的參數之一。 (這個想法是下拉下拉1的限制)FormView控件下拉2取決於下拉1

在項目的編輯模板的第一個視圖中,它工作正常。但是,如果下拉1具有不同的項目中選定它回發並生成錯誤

數據綁定方法如eval()函數, 的XPath()和綁定()只能在一個上下文中使用 數據綁定控制。

這裏是下拉列表#2:

<asp:DropDownList ID="ProjectList" runat="server" SelectedValue='<%# Bind("ConnectToProject_ID","{0:D}") %>' DataSourceID="MasterProjectsDataSource2" DataTextField="Name" DataValueField="ID" AppendDataBoundItems="true"> 
     <asp:ListItem Value="0" Text="{No Master Project}" Selected="True" /> 
</asp:DropDownList> 

這裏是MasterProjectDataSource2:

<asp:ObjectDataSource ID="MasterProjectsDataSource2" runat="server" 
      SelectMethod="GetMasterProjectList" TypeName="WebWorxData.Project" > 
      <SelectParameters> 
       <asp:ControlParameter ControlID="RPMTypeList" Name="RPMType_ID" 
        PropertyName="SelectedValue" Type="Int32" /> 
      </SelectParameters> 
     </asp:ObjectDataSource> 

如何得到這個工作,任何幫助將大大appriciated。

+0

你有沒有解決這個問題,否則,我會拿出爲您提供不同的,優雅的解決方案? – 2009-12-14 14:00:07

回答

0

回發後,控件聲音不正確。

你是在數據綁定頁面或代碼隱藏中的第一個下拉菜單? 如果代碼隱藏,你在on_init每次做或ON_LOAD?

回發後,可能存在將第二個下拉列表的SelectedValue設置爲不存在的項目的問題。

0

除非你的第二個下拉列表是在一個數據綁定控件(比如Repeater) - 我不確定你想要綁定SelectedValue的是什麼。顯然,.NET也不是 - 因爲這可能是錯誤發生的地方。

哪裏的Connect_ToProjectId從何而來?

3

我曾與一個FormView綁定dropdownlists類似的問題。我通過在formview的「OnDataBound」中手動設置選定的值來解決這個問題。

(不知道你來自哪裏得到ConnectToProject_ID)

FormView fv = (FormView)sender; 
DropDownList ddl = (DropDownList)fv.FindControl("ProjectList"); 
ddl.SelectedValue = String.Format("{0:D}", ConnectToProject_ID); 

當您準備好保存,使用 「OnItemInserting」 事件:

FormView fv = (FormView)sender; 
DropDownList ddl = (DropDownList)fv.FindControl("ProjectList"); 
e.Values["ConnectToProject_ID"] = ddl.SelectedValue; 

或 「OnItemUpdating」

當您準備保存時,使用「OnItemInserting」事件:

FormView fv = (FormView)sender; 
DropDownList ddl = (DropDownList)fv.FindControl("ProjectList"); 
e.NewValues["ConnectToProject_ID"] = ddl.SelectedValue;