C# Concat DropDownList SelectedValue中的两个绑定字段

C# Concat DropDownList SelectedValue中的两个绑定字段,c#,asp.net,c#-4.0,c#-3.0,c#-2.0,C#,Asp.net,C# 4.0,C# 3.0,C# 2.0,我正在尝试连接到Dropdownlist的SelectedValye属性中的字段。我想用Bind而不是Eval。这是我正在使用的,但它不起作用。这可能吗 <asp:DropDownList ID="RsmList" runat="server" DataSource="<%# ddRSM.DataSource %>" SelectedValue='<%# Bind("RSMLast") + '', '' + Bind("RSMFirst") %>'> <

我正在尝试连接到Dropdownlist的SelectedValye属性中的字段。我想用Bind而不是Eval。这是我正在使用的,但它不起作用。这可能吗

<asp:DropDownList ID="RsmList" runat="server" DataSource="<%# ddRSM.DataSource %>" SelectedValue='<%# Bind("RSMLast") + '', '' + Bind("RSMFirst") %>'>
</asp:DropDownList>


谢谢

我认为您不需要绑定标记中的
DataSource
——我不在标记中设置这些内容,但我相信您的引用应该是
DataSource=“ddRSM.DataSource”

您还应该能够设置
SelectedValue
属性,如下所示:

SelectedValue='<%# Bind("RSMLast") %>, <%# Bind("RSMFirst") %>'
SelectedValue=','

我不相信不使用Eval就可以,因为Bind实际上转换为两个单独的方法调用。您需要使用Eval()或在数据绑定之前执行此操作。但是-很高兴被证明是错的:)

您使用的是ASP.NET 4.0吗?或者更低的?为什么不能尝试在sql查询本身中连接?@errorstacks这可能不是最好的解决方案。您不应该使用SQL进行表示(连接字段、添加逗号等)-这就是.ASPX的用法=)@jadarnel27不,这实际上是向视图显示数据的任何人的工作。因此出现了模型/视图/演示者模式、MVVM或MVC。”这里应该使用“一些”模式。这并不意味着尽管它必须在sql查询中,但它可以是一个自定义对象绑定。IE查询sql,复制到新对象中。不幸的是,内置的ASP对象有时有助于阻止实体模式。@AdamTuliper这正是我想要表达的——不过,您已经表达得更清楚了。谢谢有意思。。从未见过两个单独的调用一起使用这样的语法。我很好奇这是否有效?我应该说,当我完成这项工作时,它使用了
DataBinder.GetPropertyValue(Container.DataItem,“fieldName”)
,而没有使用
Bind
,因此它可能无法完美工作。或者,@errorstack在原始评论中的建议对我很有意义,如果@Justin有更改SQL查询所需的访问权限。Bind会在幕后转换为两个单独的调用,这就是为什么我很难从概念上看到这一点。@AdamTuliper,你在哪里在线阅读过?我在MSDN文档中找不到关于它的任何内容。这涉及到它以澄清-我的意思是“在数据绑定之前执行”是指您绑定到该文件的任何对象在那里修改它。这就是我在这里不选择SQL数据(如果您的源代码是SQL数据)源的原因之一,我宁愿在代码中绑定到自定义对象,并在其中包含这些字段。如果您坚持使用sql数据源,那么您需要更改查询。我们在这里完全同意这一点——我讨厌在标记中看到数据源(除其他外)。