Sharepoint региональные настройки - PullRequest
0 голосов
/ 15 декабря 2011

Я создал веб-часть с помощью Visual Studio, чтобы показать выбранные столбцы списка в виде сетки.Но проблема в том, что всякий раз, когда я меняю языковой стандарт на английский-английский (по умолчанию это английский-американский), к сожалению, он, как и сайт, не влияет на него, хотя формат даты должен быть изменен.

Я попробовал следующий код, чтобы изменить язык и формат даты:

protected void btnClick_Event(object sender, EventArgs e)
    {
        using (SPSite osite = new SPSite(SPContext.Current.Web.Url))
        {
            using (SPWeb oweb = osite.OpenWeb())
            {
                if (DropDownList1.SelectedValue == "English-UK")
                {
                    oweb.AllowUnsafeUpdates = true;
                    oweb.Locale = new System.Globalization.CultureInfo("en-GB");
                    oweb.Update();
                }
                else if(DropDownList1.SelectedValue == "English-US")
                {
                    oweb.Locale = new System.Globalization.CultureInfo("en-US");
                    oweb.Update();
                }

                lblmsg.Text = "Region changed successfully";           
            }
        }
    }

Код веб-части выглядит следующим образом:

using System;
using System.ComponentModel;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebControls;
using System.Data;

namespace SharePointProject100.CustomGridWebpart
{
  [ToolboxItemAttribute(false)]
  public class CustomGridWebpart : WebPart
  {

    SPGridView grdview = new SPGridView();
    protected override void CreateChildControls()
    {
        grdview.ID = "grdview";
        grdview.AutoGenerateColumns = false;

        this.Controls.Add(grdview);
        using (SPSite osite = new SPSite(SPContext.Current.Web.Url))
        {
            using (SPWeb web = osite.OpenWeb())
            {
                SPList mylist = web.Lists["EmployeeDetails"];
                BindToGrid(mylist, grdview);
            }
        }
    }

    private void BindToGrid(SPList myList, SPGridView gridView)
    {
        // get all the listitem 
        SPListItemCollection results = myList.Items;

        // create the datatable object
        DataTable table = new DataTable();
        table.Columns.Add("Employee Name", typeof(string));
        table.Columns.Add("DOB", typeof(string));
        table.Columns.Add("JoiningDate", typeof(string));
        table.Columns.Add("MembershipExpiryDate", typeof(string));

        // Create rows for each splistitem
        DataRow row;
        foreach (SPListItem result in results)
        {
            row = table.Rows.Add();
            row["Employee Name"] = Convert.ToString(result["Employee Name"]);
            row["DOB"] = Convert.ToString(result["DOB"]);
            row["JoiningDate"] = Convert.ToString(result["JoiningDate"]);
            row["MembershipExpiryDate"] = Convert.ToString(result["MembershipExpiryDate"]);
        }

        // create the bound fields
        SPBoundField boundField;
        boundField = new SPBoundField();
        boundField.HeaderText = "Employee Name";
        boundField.DataField = "Employee Name";
        boundField.ItemStyle.HorizontalAlign = HorizontalAlign.Center;
        boundField.ItemStyle.Wrap = false;
        gridView.Columns.Add(boundField);

        boundField = new SPBoundField();
        boundField.HeaderText = "DOB";
        boundField.DataField = "DOB";
        boundField.ItemStyle.HorizontalAlign = HorizontalAlign.Center;
        boundField.ItemStyle.Wrap = false;
        gridView.Columns.Add(boundField);

        boundField = new SPBoundField();
        boundField.HeaderText = "JoiningDate";
        boundField.DataField = "JoiningDate";
        boundField.ItemStyle.HorizontalAlign = HorizontalAlign.Center;
        boundField.ItemStyle.Wrap = false;
        gridView.Columns.Add(boundField);

        boundField = new SPBoundField();
        boundField.HeaderText = "MembershipExpiryDate";
        boundField.DataField = "MembershipExpiryDate";
        boundField.ItemStyle.HorizontalAlign = HorizontalAlign.Center;
        boundField.ItemStyle.Wrap = false;
        gridView.Columns.Add(boundField);

        gridView.AutoGenerateColumns = false;
        gridView.DataSource = table.DefaultView;
        gridView.DataBind();
    }
}

}

1 Ответ

1 голос
/ 09 апреля 2013

Установка LocaleID в RegionalSettings сети должна пометить его как «грязный» (глядя на дизассемблированный код в ILSpy), но мне не повезло, когда я получил «обновить» другие свойства, основанные на этих изменениях .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...