我想从当前登录的SharePoint用户的数据库中检索数据,并在详细信息视图中的控件上显示它。但我真的不知道如何以最好的方式实现这一目标。这是我尝试过的代码,但它显示了null
。
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
GetEmployeeCv();
}
}
private void GetEmployeeCv()
{
using (var db = new KnowItCvdbEntities())
{
SPWeb theSite = SPControl.GetContextWeb(Context);
SPUser theUser = theSite.CurrentUser;
string strUserName = theUser.LoginName;
var theEmpl =(from p in db.EMPLOYEES
where p.username == strUserName
select p).FirstOrDefault();
if(theEmpl != null)
{
Image empImg = (Image)DetailsViewShowFullCv.FindControl("imageProfPic");
empImg.ImageUrl = theEmpl.image;
}
}
}
如果我想将我的详细信息视图数据绑定如下:
Image empImg = (Image)DetailsViewShowFullCv.FindControl("imageProfPic");
empImg.ImageUrl = theEmpl.image;
DetailsViewShowFullCv.DataSource = ??;
DetailsViewShowFullCv.DataBind();
我真的不知道怎么做。那里的任何人可以帮助我吗?
答案 0 :(得分:0)
a)DataSource应该是保存数据的变量。在这种情况下,它将是theEmpl
b)通过调试器运行此命令以检查strUserName是否符合您的预期。 LoginName字段通常返回域名和用户名,如“DOMAIN \ UserName”,因此如果您只将UserName部分存储在没有Domain \
c)对于数据绑定,要么将LINQ查询更改为p.FieldNameToDatabind,要么知道如何在asp标记中编写Databind代码,以便实际显示该字段。