我有一個使用兩個表的動態數據應用程序。對於其中一個表格,我想根據另一個表格中的列設置一個列,使用填充其他表格中的值的下拉列表。目前該列在頁面上作爲文本框條目生成。但是,動態數據不提供下拉項目來爲此提供UIHint。我嘗試修改枚舉字段控件來做到這一點,但似乎無法讓它工作。將文本框轉換爲動態數據中的下拉列表
我應該指定這是用於從其中一個表格的Insert頁面添加一個新條目。我希望根據另一個表中列的值設置插入頁面上的一個項目,使用從另一個表格的列中填充的值的下拉列表。
我有一個使用兩個表的動態數據應用程序。對於其中一個表格,我想根據另一個表格中的列設置一個列,使用填充其他表格中的值的下拉列表。目前該列在頁面上作爲文本框條目生成。但是,動態數據不提供下拉項目來爲此提供UIHint。我嘗試修改枚舉字段控件來做到這一點,但似乎無法讓它工作。將文本框轉換爲動態數據中的下拉列表
我應該指定這是用於從其中一個表格的Insert頁面添加一個新條目。我希望根據另一個表中列的值設置插入頁面上的一個項目,使用從另一個表格的列中填充的值的下拉列表。
所以我設法實際上這個數字一出來我自己。您可以簡單地修改其中一個現有字段模板的代碼,以完成我期望的操作。
如前所述,我們的想法是在插入頁面上爲數據輸入創建一個文本框,並將其轉換爲值的下拉列表,其中該下拉列表由另一個表中的數據組成。然後用戶將選擇所需的值,並將其作爲插入過程的一部分傳遞迴數據庫。
首先在FieldTemplates文件夾中創建一個新的控件。將它命名爲DropDown。你會得到你的ascx,代碼文件和設計器文件。
然後,從ascx文件獲取Enumeration_Edit中的代碼,並將其複製到ascx文件中以供新的下拉控件使用。您可能需要重命名DropDownList控件的ID。
在後面的代碼中,將Enumeration_Edit控件的代碼中的代碼複製並修改它們以滿足下拉列表的需求。
你pageLoad的類應該是這樣的:
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
OnDataBinding();
}
SetUpValidator(RequiredFieldValidator1);
SetUpValidator(DynamicValidator1);
}
你OnDataBinding應該設置這樣的:
public void OnDataBinding()
{
//Code for binding data from a query/stored proc to a dropdown should go here.
}
保持ExtractValues()和DataControl上()班,但你可以擺脫的EnumType()類。
此外請務必添加您可能需要的任何參考。比較Enumeration_Edit控件的背後的代碼和你的新控件來解決這個問題。
現在,使控件在您希望控制數據插入的列的文本框上工作。您可以簡單地將[UIHint("DropDown")]
添加到您的表的部分類的相應列項中,但是這會在顯示時將該控件應用於該列的所有實例。我爲每個表格設置了自定義頁面,我只希望將此控件用於特定列的插入功能。因此,我改變了我的插入頁。此表,使線控制此列看起來像這樣:
<asp:DynamicField DataField="COLUMN_NAME" UIHint="DropDown" ReadOnly="true" />
這樣做,這樣,你只有控制適用於本列此頁面上。您需要將ReadOnly值設置爲true,否則它將呈現爲文本輸入字段而不是下拉列表。
從那裏,您的插入頁面應該有一個下拉列表的數據輸入該列。
我只需要它用於這一列,因此將數據綁定到我的下拉列表的代碼只能設置爲適用於這一列。您可能可以編寫一個查詢,根據您已將控件綁定到的列來查找特定列的所有值,或者您可能只需爲每個列創建您自己的字段模板,然後您需要有一個下拉列表對於。
您是否使用過濾器控件?
FilterControl屬性返回當用戶選擇由QueryableFilterRepeater爲其生成的標籤時應該接收焦點的控件。在我們的日期過濾器中,這可以是下拉列表或文本框。
或許檢查這篇文章將幫助您: http://www.olegsych.com/2010/07/understanding-aspnet-dynamic-data-filter-templates/
不是真的看到這對我有什麼幫助。提供的示例用於查詢現有的表以縮小列出的範圍。我需要的是能夠使用另一個表中的值填充下拉列表,以便在使用插入頁面創建新條目時,將該列的值設置爲等於另一個表中的值。 – MattD 2013-03-22 13:28:39
如果你添加了一些代碼來顯示你目前在做什麼,可能會有所幫助 – JRoughan 2013-03-28 02:35:57
其實我在過去的幾天裏設法弄清楚了這一點。我已經在底部發布了我的解決方案。 – MattD 2013-03-28 13:45:07