回答
如果您只希望在过滤条件部分中出现的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