0

我想从当前登录的 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();

我真的不知道该怎么做。有谁可以帮助我吗?

4

1 回答 1

0

a) DataSource 应该是保存数据的变量。在这种情况下,它将是 theEmpl

b) 通过调试器运行它以检查 strUserName 是否是您所期望的。LoginName 字段通常返回域和用户名,如“DOMAIN\UserName”,因此如果您仅将 UserName 部分存储在数据库中而没有 Domain\,则它可能会返回 null(默认为 null)值

c) 对于数据绑定,要么将 LINQ 查询更改为 p.FieldNameToDatabind,要么知道如何在 asp 标记中编写数据绑定代码,以便实际显示该字段。

于 2013-04-13T04:22:33.197 回答