我在标记中定义了一个entitydatasource
<asp:EntityDataSource ID="edsFV" runat="server"></asp:EntityDataSource>
<asp:EntityDataSource ID="eds_fv_singleuserprofile" runat="server"
ConnectionString="name=webEntities" DefaultContainerName="webEntities"
EnableFlattening="False" EnableUpdate="True" EntitySetName="userprofiles"
Where="it.ASPUserId = @SelectedValue" >
<WhereParameters>
<asp:Parameter DefaultValue="20" Name="SelectedValue" Type="Int32" />
</WhereParameters>
</asp:EntityDataSource>
如果它需要关于下拉选择的信息。它返回具有5个属性的单个项。我试图访问其中一个属性,"FullName"在更新面板内的字段集的图例中使用,这个下拉菜单正在更改数据如下;
<asp:UpdatePanel ID="udpUserProfile" runat="server" >
<ContentTemplate>
<fieldset id="singleuserprofile" >
<legend>Profile details for <%# I want to databind the "FullName" property value here%></legend>
"other code"
</fieldset>
</ContentTemplate>
</asp:UpdatePanel>
我似乎找不到合适的方法来做这件事。
虽然我没有发现任何明确说明,但我的理解是数据源仅用于与数据绑定控件交互。来自MSDN页面:
数据源控件极大地扩展了数据绑定的功能控件,如GridView、FormView和DetailsView控件。通过数据源控件和数据绑定控件一起工作,使您可以从不同的数据中检索、修改、分页、排序和筛选数据只有很少或没有代码的源代码。
您可能应该使用实体查询获得fieldset
标记的数据,并仅使用DetailsView
标记的entitydatasource
。
据我所知,您正在使用AutoPostBack的下拉列表来选择DetailsView
中的项目。如果,正如你的评论所暗示的那样,DetailsView
在你做部分回发时没有更新,你应该在控件上调用.DataBind()
。此外,在这种情况下,使用ControlParameter
代替基本的Parameter
可能更合适。