gpt4 book ai didi

c# - 托管元数据字段中的 AfterProperties 和 BeforeProperties 根据语言返回不同的字符串

转载 作者:太空宇宙 更新时间:2023-11-03 13:53:21 24 4
gpt4 key购买 nike

我在列表中有一个托管元数据列。英文值:布鲁塞尔,法文:Bruxelles。

我需要在 ItemUpdating 事件中比较前后属性。我知道不能使用 before 因为它会在项目更新中返回 null 所以我必须使用 properties.ListItem。

如果用户使用英文 UI,则以下代码可以正常工作,因为术语相同。

但是,如果用户选择法语,那么这将不起作用。因为 afterproperties 将是 Bruxelles

private void ValidateAssignmentDate(SPItemEventProperties properties, SPListItem item)
{
string currentBudgetSection = properties.ListItem["BudgetSection"] == null ? string.Empty : properties.ListItem.GetTaxonomyFieldValue("BudgetSection").ValidatedString.ToString();
string newBudgetSection = properties.AfterProperties["BudgetSection"].ToString();
bool budgetSectionSame = newBudgetSection.Equals(currentBudgetSection);

if(!budgetSectionSame))
{

//dosomething

他的扩展方法是:(我不能改变扩展方法)

public static TaxonomyFieldValue GetTaxonomyFieldValue(this SPListItem item, string fieldName)
{

TaxonomyFieldValue returnValue = null;
try
{
TaxonomyField taxonomyField = GetTaxonomyField(item, fieldName);
if (taxonomyField != null && taxonomyField.Id != null)
returnValue = item[taxonomyField.Id] as TaxonomyFieldValue;
}
catch (Exception ex)
{
throw;
}
return returnValue;
}

最佳答案

我是这样修的。关于此处的博客:http://levalencia.wordpress.com/

string currentBudgetSection = properties.ListItem["BudgetSection"] == null ? string.Empty : properties.ListItem.GetTaxonomyFieldValueByLanguage(item.Web.Site, "BudgetSection", Thread.CurrentThread.CurrentUICulture.LCID).ToString();
string newBudgetSection=string.Empty ;
if (properties.AfterProperties["BudgetSection"] != null && !string.IsNullOrEmpty(properties.AfterProperties["BudgetSection"].ToString()))
{
int startIndex = properties.AfterProperties["BudgetSection"].ToString().IndexOf("#")+1;
int endIndex = properties.AfterProperties["BudgetSection"].ToString().IndexOf("|");
int length = endIndex - startIndex;
newBudgetSection = properties.AfterProperties["BudgetSection"] == null ? string.Empty : properties.AfterProperties["BudgetSection"].ToString().Substring(startIndex, length);
}


bool budgetSectionSame = newBudgetSection.Equals(currentBudgetSection);
if((!budgetSectionSame )
//do something

关于c# - 托管元数据字段中的 AfterProperties 和 BeforeProperties 根据语言返回不同的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13089213/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com