我有一个EntityDataSource,我需要将WHERE设置为本地变量类型:GUID.
我的问题是我无法将我的本地变量Guid发送到EntityDataSource以进行WHERE操作.
我还尝试使用ControlParameter <asp:ControlParameter Name="UserId" />并在我的Guid上使用Text属性转换为String.但是不起作用.
任何想法如何解决问题
<asp:EntityDataSource ID="EntityDataSourceListAuthors" runat="server"
AutoGenerateWhereClause="True"
ConnectionString="name=CmsConnectionStringEntityDataModel"
DefaultContainerName="CmsConnectionStringEntityDataModel"
EnableFlattening="False" EntitySetName="CmsAuthors" Where=""
EntityTypeFilter="" Select="">
<WhereParameters>
<asp:Parameter Name="UserId" />
</WhereParameters>
</asp:EntityDataSource>
Run Code Online (Sandbox Code Playgroud)
解决方案你的问题:
有用的资源:
http://www.leftslipper.com/ShowFaq.aspx?FaqId=11
http://weblogs.asp.net/scottgu/archive/2006/01/23/436276.aspx
如何以编程方式设置EntityDataSource和DetailsView的参数?
http://msdn.microsoft.com/en-us/library/cc294876%28v=Expression.40%29.aspx
http://msdn.microsoft.com/en-us/library/cc295043%28v=Expression.40%29.aspx
我的代码现在
<asp:EntityDataSource ID="EntityDataSourceListAuthors" runat="server"
AutoGenerateWhereClause="True"
ConnectionString="name=CmsConnectionStringEntityDataModel"
DefaultContainerName="CmsConnectionStringEntityDataModel"
EnableFlattening="False" EntitySetName="CmsAuthors" Where=""
EntityTypeFilter="" Select="">
<WhereParameters>
<cmsParameter:CustomParameter Name="UserId" />
</WhereParameters>
</asp:EntityDataSource>
Run Code Online (Sandbox Code Playgroud)
新增类:
using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Security;
namespace WebProject.Core.Utilities
{
public class CustomParameter : Parameter
{
protected override object Evaluate(HttpContext context, Control control)
{
MembershipUser currentUser = Membership.GetUser();
return currentUser.ProviderUserKey;
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5132 次 |
| 最近记录: |