回答
如果您只希望在過濾條件部分中出現的DropDown列表中使用此功能,只需通過添加您想過濾的QueryString參數來修改URL。 DynamicFilter將從QueryString中獲取值並相應地設置DropDown列表。 (fyi。這與ForeignKey.ascx FieldTemplate提供的功能相同)
如果有更好的方法來實際創建此URL(而不是使用字符串),那將會很不錯,但是到目前爲止,任何解決方案我提供的可能會在後續版本中打破。
例如(在Page_Load中)
Response.Redirect("~/Employees/List.aspx?ReportsTo=1234");
這是一個普遍的變化,或者僅僅是爲了一個外鍵關係?
假設這只是一個外鍵關係,您可以創建一個新的FieldTemplate,僅用於該關係。 New FieldTemplate將是默認的「ForeignKey」FieldTemplate的副本。在New FieldTemplate中,修改OnDataBinding(或Page_PreRender)事件以設置DropDownList的「默認值」。
然後,要強制New FieldTemplate用於該關係,您需要使用System.ComponentModel.DataAnnotations。 UIHint屬性表示該外鍵關係的實體類的成員。 (下面的鏈接)
http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.uihintattribute.uihint.aspx 或http://www.asp.net/learn/3.5-SP1/video-291.aspx(約07:30分鐘)
對於一個小的幫助,你可以看看CodePlex上的DynamicData期貨釋放。具體來說就是「使用來自過濾器的值填充插入模板」部分。 http://www.codeplex.com/aspnet/Release/ProjectReleases.aspx?ReleaseId=14475
我只想將默認值設置爲出現在List.aspx中的GridView上方的下拉列表中。您的建議似乎將下拉列表添加到Gridview中的FK列(所有使用FK的行)。 – Nikos 2009-06-29 21:02:17
是的,這個解決方案會在顯示的地方修改DropDown List。請編輯您的原始問題,並注意您只希望它在過濾器部分中更改,而不是在任何地方。 (並在下面看到我的下一個答案) – 2009-07-01 21:01:11
我已經想出了一個解決方法,但我打開一個更優雅的解決方案。
我通過在PopulateListControl(DropDownList1)後面的Page_Init中插入以下行來編輯FilterUserControl.ascx.cs;
DropDownList1.SelectedIndex = DropDownList1.Items.IndexOf(DropDownList1.Items.FindByText(「Bob」)); //用戶名是硬編碼只是爲了測試
這似乎工作,但我寧願使用元數據自定義部分實體類來解決這個如果可能的話。
我想在我的動態下拉列表中使用此代碼以使所選值成爲特定項目,但是當我嘗試選擇不同的值時,下拉列表會將其更改回原始指定值。 – jlg 2011-10-31 16:19:42
我已經在我的工作中的應用程序解決了這一點,在你插入視圖模板後面的代碼: 在ItemCreated事件細節來看:
foreach (DetailsViewRow row in DetailsView1.Rows)
{
foreach (Control ctl in row.Controls)
foreach (Control c in ctl.Controls)
foreach (Control x in c.Controls)
{
if (x.ClientID.Contains("tblName"))
{
foreach (Control y in x.Controls)
{
if (y.ClientID.Contains("DropDownList"))
{
ddl = y as DropDownList;
ddl.SelectedValue = Convert.ToString(UserId);
ddl.Enabled = false;
}
}
}
}
}
使用此代碼,當用戶登錄並且他們要插入某個實體(tblName)時,已經選擇並禁用了下拉列表(fk到userId)。
- 1. ASP.NET MVC - 設置靜態選擇的默認值(下拉列表)
- 2. 使用ColdFusion在下拉列表中動態設置默認值?
- 3. 基於數據源設置下拉列表的默認值
- 4. 在「數據驗證」下拉列表中設置默認值
- 5. 設置默認值下拉
- 6. 設置默認下拉值
- 7. 下拉列表中如何設置默認值後,它是動態的下載
- 8. 動態設置數據集默認值
- 9. 如何根據變量設置下拉列表默認值?
- 10. 下拉列表 - 默認值
- 11. 下拉列表默認值
- 12. 在ASP.Net的下拉列表中動態填充和設置值
- 13. 動態設置下拉選擇的默認值
- 14. 在AngularJs中動態填充下拉列表中設置默認值
- 15. 設置的第一個值作爲默認的下拉列表
- 16. 設置asp.net下拉列表的值
- 17. 綁定默認值下拉列表從數據表C#列表
- 18. 在下拉菜單中設置默認值,其中動態輸入數據
- 19. 如何將默認值設置爲C#中的下拉列表?
- 20. 如何使用Javascript設置下拉列表的默認值
- 21. ASP MVC3 - 下拉列表沒有設置正確的默認值
- 22. ActiveScaffold:如何設置下拉列表的默認值?
- 23. 在Bootstrap中設置默認下拉值
- 24. 如何設置默認值下拉
- 25. Wicket下拉選擇設置默認值
- 26. 使用Ajax填充下拉列表時設置默認值
- 27. 在下拉列表中設置默認值
- 28. 在下拉列表中設置默認值
- 29. 如何將默認值設置爲下拉列表控件?
- 30. 在下拉列表中設置默認值選項
謝謝亞倫。這個技巧現在會做。 – Nikos 2009-07-01 23:50:00