У меня есть список с названием «Обозначение», который содержит код обозначения и имя обозначения. У меня есть другой список с именем «Сотрудник», который содержит имя сотрудника и имя имени (как поле поиска). Я могу вставить значения в список «Сотрудник», используя следующий код.Добавить значения в список содержит поле поиска
protected void AddEmp(object sender, EventArgs e)
{
string emp_name = txtEmployeeName.Text;
string emp_designation = ddlDesignation.SelectedValue;
using (SPSite site = new SPSite("My Site"))
{
using (SPWeb web = site.OpenWeb())
{
SPSecurity.RunWithElevatedPrivileges(delegate()
{
web.AllowUnsafeUpdates = true;
SPList splist_employees = web.Lists["Employee"];
SPList splist_designations = web.Lists["Designations"];
SPListItemCollection splc_items = splist_employees.Items;
SPListItem spli_item = splc_items.Add();
SPFieldLookup lookup = splist_employees.Fields["Designated"] as SPFieldLookup;
string fieldName = lookup.LookupField;
spli_item["Employee Name"] = emp_name;
spli_item[fieldName] = GetLookFieldIDS(emp_designation, splist_designations);
spli_item.Update();
});
}
}
}
public static string GetLookFieldIDS(string lookupValues, SPList lookupSourceList)
{
string id = string.Empty;
SPFieldLookupValueCollection lookupIds = new SPFieldLookupValueCollection();
SPQuery query = new Microsoft.SharePoint.SPQuery();
query.Query = "<Where><Eq><FieldRef Name='Designation' /><Value type='Text'>"+lookupValues + "</Value></Eq></Where>";
SPListItemCollection listItems = lookupSourceList.GetItems(query);
foreach (Microsoft.SharePoint.SPListItem item in listItems)
{
id = item.ID.ToString();
}
return id;
}
Здесь я дал название поля как «Обозначение» внутри запроса.
Но, я хочу найти имя поля, основанное на значении, заданном из пользовательского конца, вместо жесткого кодирования имени поля как «Обозначение».
Любая помощь очень ценится. Заранее спасибо.
Вы можете просто добавить выпадающий список для всех имен полей и построить свой CAML на основе этих выборов. –