0

SharePoint2007リストのEdit.aspxページにユーザーコントロールを展開しました。テストサーバーでは正常に動作していますが、本番環境ではユーザーコントロールのUIのみが読み込まれます。ページ読み込み時のテキストボックスまたはコンボボックスがいっぱいになりません。いっぱいになったデータではなく、ユーザーコントロールのデフォルト値のスクリーンショットをご覧ください。また、クエリ文字列からIDを取得し、ページの読み込み時に必要なデータを読み込む以下のコードを見つけます。誰がリストアイテムを割り当てているかを確認するためにcreatedbyvalueを使用しました。ユーザーが自分で作成していないデータにアクセスしている場合は、他のページにリダイレクトされます。ガイドしてください。それを機能させるために私は何をするか、またはチェックしますか。

空のユーザーコントロール

public partial class Class1 : System.Web.UI.UserControl
{

    static string name, lname, Number;  

    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            string c1,c2,c3,c4,c5, Created;
            if (!Page.IsPostBack)
            {

                     EditID = Convert.ToInt32(Request.QueryString["ID"]);
                     name = SPContext.Current.Web.CurrentUser.Name;
                     lname = SPContext.Current.Web.CurrentUser.LoginName;

                SPSecurity.RunWithElevatedPrivileges(delegate()
             {
                 using (SPSite site = new SPSite("site name"))
                 {
                     using (SPWeb web = site.OpenWeb())
                     {
                         SPList list = web.Lists["list1"];
                         SPList UserSkill = web.Lists["list2"]; 
                         ItemForEdit = UserSkill.GetItemById(EditID);
                         c1 = ItemForEdit["col1"].ToString();
                         c2 = ItemForEdit["col2"].ToString();
                         c3 = ItemForEdit["col3"].ToString();
                         c4 = ItemForEdit["col4"].ToString();
                         c5 = ItemForEdit["col5"].ToString();
                         Created = ItemForEdit["Author"].ToString();
                         Number = ItemForEdit["col6"].ToString();
                         string[] extract;
                         extract = Created.Split('#');
                         if (name == extract[1])
                         {

                             WholeData = web.Lists["list1"].Items.GetDataTable(); 
                             Roles = WholeData.DefaultView.ToTable(true, "Title");
                             txtnumber.Text = Number;
                             ddlRole.DataSource = Roles;
                             ddlRole.DataTextField = "Title";
                             ddlRole.DataValueField = "Title";
                             ddlRole.DataBind();
                             ddlRole.SelectedValue = c1;

            //more code

            }
                         else
                         {
                             Response.Redirect("/IM/pages/Intrusion.aspx", false);
                         }
                     }
                 }
             });

            }
        }
        catch (Exception exc)
        {
            HttpContext.Current.Response.Write("<script>alert('Exception on page load: " + exc.Message + "')</script>");

        }
    }
}
4

1 に答える 1

0

最初のカットはデータの問題だと思われます。

製品ボックスでデバッグするには、リモート デバッガーを使用できます。または、0 個のアイテムが返されたかどうかをチェックする呼び出しを追加して、エラーを生成するか、結果をログに記録することもできます。

于 2012-10-28T21:13:41.253 に答える