0% found this document useful (0 votes)
18 views12 pages

ExtendedLookupFieldControl Cs

A class that create an extended lookup field control with C# for Sharepoint

Uploaded by

devi das
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
0% found this document useful (0 votes)
18 views12 pages

ExtendedLookupFieldControl Cs

A class that create an extended lookup field control with C# for Sharepoint

Uploaded by

devi das
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
You are on page 1/ 12

26/11/2024 11:14 ExtendedLookupFieldControl.

cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Utilities;
using Microsoft.SharePoint.WebControls;
using SharePointStu.LookupField.Common;
using SharePointStu.LookupField.DataContracts;

namespace SharePointStu.LookupField.Fields
{
/// <summary>
/// Control for creating, displaying and editing the <see
cref="T:SharePointStu.LookupField.Fields.ExtendedLookupFieldType"/>
/// field.
/// </summary>
public class ExtendedLookupFieldControl : BaseFieldControl
{
#region Private Members

private const string VS_LISTITEMS = "vs_listitems";


private const string DISPLAY_DELIMITER = "; ";

private Dictionary<int, string> _itemDetails;


private Guid _webSourceId;
private Guid _lookupListId;
private Guid _displayColumnId;
private Guid _valueColumnId;
private bool _allowMultipleItemSelection;
private string _relatedFieldName;
private bool _isRequired;
private static string lookupfieldtext;

private DropDownList ddlLookupItems;


private Literal ltlDisplayItems;
private GroupedItemPicker gipLookupItems;

private ExtendedLookupData _lookupData;

private bool _isInitialised;

#endregion Private Members

#region Public Properties

/// <summary>
/// Get the display delimiter to use for displaying multiple values.
/// </summary>
public static string DisplayDelimiter { get { return DISPLAY_DELIMITER; } }

#endregion Public Properties

#region Constructor

public ExtendedLookupFieldControl(ExtendedLookupFieldType extendedLookupFieldType)


{
if (extendedLookupFieldType == null)
throw new ArgumentNullException("extendedLookupFieldType");

_isInitialised = false;
_webSourceId = extendedLookupFieldType.LookupWebId;
_lookupListId = new Guid(extendedLookupFieldType.LookupList);
_displayColumnId = new Guid(extendedLookupFieldType.LookupField);
_valueColumnId = extendedLookupFieldType.ValueColumnId;
_allowMultipleItemSelection = extendedLookupFieldType.AllowMultipleValues;
file:///C:/Users/amal.bahrini/Desktop/Data cloud/ExtendedLookupFieldControl.cs 1/12
26/11/2024 11:14 ExtendedLookupFieldControl.cs
_relatedFieldName = extendedLookupFieldType.RelatedFieldName;
_isRequired = extendedLookupFieldType.Required;

#endregion Constructor

#region Overridden Methods

public override void Validate()


{
if (_isRequired)
{
ErrorMessage = "You must specify a value for this required field.";

if (_allowMultipleItemSelection)
{
IsValid = gipLookupItems != null && gipLookupItems.SelectedIds.Count > 0;
}
else
{
IsValid = ddlLookupItems != null &&
!string.IsNullOrEmpty(ddlLookupItems.SelectedItem.Value);
}
}
else
{
IsValid = true;
}
}

public override object Value


{
get
{
EnsureChildControls();
InitialiseControls();

_lookupData = new ExtendedLookupData();


_lookupData.WebId = _webSourceId;
_lookupData.ListId = _lookupListId;
_lookupData.DisplayId = _displayColumnId;
_lookupData.ValueId = _valueColumnId;

if (_allowMultipleItemSelection)
{
SPFieldLookupValueCollection lookupValues = GetMultipleItemSelectionValues();
AddLookupValuesToLookupData(lookupValues);
return lookupValues;
}

SPFieldLookupValue lookupValue = GetSingleItemSelectionValue();


if (lookupValue != null)
{
AddLookupValueToLookupData(lookupValue);
}
string data = Serialization<ExtendedLookupData>.SerializeObject(_lookupData);
lookupfieldtext = data;

return lookupValue;

}
set
{
}
}

protected override void OnInit(EventArgs e)


{

file:///C:/Users/amal.bahrini/Desktop/Data cloud/ExtendedLookupFieldControl.cs 2/12


26/11/2024 11:14 ExtendedLookupFieldControl.cs
base.OnInit(e);

EnsureChildControls();
}

protected override void OnLoad(EventArgs e)


{
base.OnLoad(e);

InitialiseControls();
}

protected override void CreateChildControls()


{
if (Field == null) return;

base.CreateChildControls();

switch (ControlMode)
{
case SPControlMode.Display:
CreateControlsForDisplay();
break;
case SPControlMode.Edit:
case SPControlMode.New:
CreateControlsForNewEdit();
break;
}
}

public override void UpdateFieldValueInItem()


{
base.UpdateFieldValueInItem();

if (Field.Required)
{
IsValid = Value != null;
}

if (_lookupData != null)
{
string data = Serialization<ExtendedLookupData>.SerializeObject(_lookupData);
lookupfieldtext = data;
SPList lookupList = GetLookupList();
List<SharePointHelper.ExtendedLookupColumnValues> currentValues =
GetSelectedLookupColumns(lookupList, _lookupData, false);
SPFieldUrlValue lien = new SPFieldUrlValue();
lien.Description = "test";
lien.Url = GetFieldValuesAsLinksAll(_lookupData.WebId, _lookupData.ListId,
_lookupData.ValueId, currentValues);
Item[_relatedFieldName] = lien;

}
}

protected override void RenderFieldForDisplay(HtmlTextWriter output)


{
ltlDisplayItems.RenderControl(output);
}

#endregion Overridden Methods

#region ViewState

protected override void LoadViewState(object savedState)


{
base.LoadViewState(savedState);

if (ViewState[VS_LISTITEMS] != null)

file:///C:/Users/amal.bahrini/Desktop/Data cloud/ExtendedLookupFieldControl.cs 3/12


26/11/2024 11:14 ExtendedLookupFieldControl.cs
{
_itemDetails = ViewState[VS_LISTITEMS] as Dictionary<int, string>;
}
}

protected override object SaveViewState()


{
if (_itemDetails != null && _itemDetails.Count > 0)
{
ViewState[VS_LISTITEMS] = _itemDetails;
}

return base.SaveViewState();
}

#endregion ViewState

#region Binding

private void BindLookupColumnValues(ListControl listControl,


List<SharePointHelper.ExtendedLookupColumnValues> columnValues)
{
if (columnValues == null)
return;

listControl.DataSource = columnValues;
listControl.DataTextField = "Display";
listControl.DataValueField = "Value";
listControl.DataBind();
}

private void DropDownList_OnDataBound(object sender, EventArgs e)


{
((DropDownList)sender).Items.Insert(0, new ListItem("(none)", string.Empty));
}

#endregion Binding

#region Create Controls

private void CreateControlsForDisplay()


{
ltlDisplayItems = new Literal { ID = "ltlDisplayItems" };
Controls.Add(ltlDisplayItems);
}

private void CreateControlsForNewEdit()


{
if (_allowMultipleItemSelection)
{
CreateMultipleItemSelectionControls();
}
else
{
ddlLookupItems = new DropDownList {ID = "ddlLookupItems"};
if (!Field.Required)
{
ddlLookupItems.DataBound += DropDownList_OnDataBound;
}
Controls.Add(ddlLookupItems);
}
}

private void CreateMultipleItemSelectionControls()


{
const string SEPARATOR_CELL_STYLE = "padding-left: 10px;";
const string CSS_MSLONG = "ms-long";
const string CSS_MSINPUT = "ms-input";
const string CSS_MSBUTTONHEIGHTWIDTH = "ms-ButtonHeightWidth";

file:///C:/Users/amal.bahrini/Desktop/Data cloud/ExtendedLookupFieldControl.cs 4/12


26/11/2024 11:14 ExtendedLookupFieldControl.cs

gipLookupItems = new GroupedItemPicker


{
ID = "gipLookupItems",
CandidateControlId = "SelectCandidate",
ResultControlId = "SelectResult",
AddButtonId = "btnAdd",
RemoveButtonId = "btnRemove"
};
Controls.Add(gipLookupItems);

Table tblMultipleValue = new Table { ID = "tblMultipleValue", CellPadding = 0,


CellSpacing = 0, CssClass = CSS_MSLONG };

TableRow row = new TableRow();


TableCell cell = new TableCell { CssClass = CSS_MSINPUT };
SPHtmlSelect selectCandidate = new SPHtmlSelect {ID = "SelectCandidate", Width = 143,
Height = 125, Multiple = true };
cell.Controls.Add(selectCandidate);
row.Cells.Add(cell);
tblMultipleValue.Rows.Add(row);

cell = new TableCell();


cell.Attributes.Add("style", SEPARATOR_CELL_STYLE);
row.Cells.Add(cell);
tblMultipleValue.Rows.Add(row);

cell = new TableCell { CssClass = CSS_MSINPUT, HorizontalAlign =


HorizontalAlign.Center, VerticalAlign = VerticalAlign.Middle };
HtmlButton btnAdd = new HtmlButton { ID = "btnAdd", InnerText = "Add" };
btnAdd.Attributes.Add("class", CSS_MSBUTTONHEIGHTWIDTH);
cell.Controls.Add(btnAdd);
Literal litBreak = new Literal();
litBreak.Text = "<br /><br />";
cell.Controls.Add(litBreak);
HtmlButton btnRemove = new HtmlButton { ID = "btnRemove", InnerText = "Remove" };
btnRemove.Attributes.Add("class", CSS_MSBUTTONHEIGHTWIDTH);
cell.Controls.Add(btnRemove);
row.Cells.Add(cell);
tblMultipleValue.Rows.Add(row);

cell = new TableCell();


cell.Attributes.Add("style", SEPARATOR_CELL_STYLE);
row.Cells.Add(cell);
tblMultipleValue.Rows.Add(row);

cell = new TableCell { CssClass = CSS_MSINPUT };


SPHtmlSelect selectResult = new SPHtmlSelect { ID = "SelectResult", Width = 143,
Height = 125, Multiple = true };
cell.Controls.Add(selectResult);
row.Cells.Add(cell);
tblMultipleValue.Rows.Add(row);

Controls.Add(tblMultipleValue);
}

#endregion Create Controls

#region Initialise Display

private void InitialiseForDisplay()


{
ltlDisplayItems.Text = string.Empty;

SPList lookupList = GetLookupList();


List<SharePointHelper.ExtendedLookupColumnValues> currentValues =
GetSelectedLookupColumns(lookupList, _lookupData, false);

if (currentValues != null && currentValues.Count > 0)

file:///C:/Users/amal.bahrini/Desktop/Data cloud/ExtendedLookupFieldControl.cs 5/12


26/11/2024 11:14 ExtendedLookupFieldControl.cs
{
string displayLinks = GetFieldValuesAsLinks(_lookupData.WebId, _lookupData.ListId,
_lookupData.ValueId, currentValues);

if (string.IsNullOrEmpty(displayLinks))
{
foreach (SharePointHelper.ExtendedLookupColumnValues value in currentValues)
{
ltlDisplayItems.Text += value.Display + DisplayDelimiter;
}

ltlDisplayItems.Text = ltlDisplayItems.Text.Substring(0,
ltlDisplayItems.Text.Length - DisplayDelimiter.Length);
}
else
{
ltlDisplayItems.Text = displayLinks;
}
}
}

#endregion Initialise Display

#region Initialise New and Edit

private void InitialiseForNewEdit()


{
if (_allowMultipleItemSelection)
{
InitialiseMultipleItemSelectionControls();
}
else
{
if (!Page.IsPostBack)
{
SPList lookupList = GetLookupList();
if (lookupList != null)
{
List<SharePointHelper.ExtendedLookupColumnValues> values =
SharePointHelper.GetColumnValues(lookupList, _displayColumnId, _valueColumnId);

BindLookupColumnValues(ddlLookupItems, values);

if (ddlLookupItems.Items.Count > 0)
{
if (IsEditModeValid(_lookupData, lookupList.ID))
{
List<SharePointHelper.ExtendedLookupColumnValues> selectedValues =
GetSelectedLookupColumns(lookupList, _lookupData);
ListItem currentItem = null;
if (selectedValues.Count > 0)
{
// Select the first item in the selectedValues list, this may
happen if the field was configured for multiple items
// and was then changed to a single selection.
currentItem =
ddlLookupItems.Items.FindByValue(selectedValues[0].Value.ToString());
}
ddlLookupItems.SelectedIndex = (currentItem != null) ?
ddlLookupItems.Items.IndexOf(currentItem) : 0;
}
else // Not edit mode, so select the first item in the list
{
ddlLookupItems.SelectedIndex = 0;
}
}
}
}
}

file:///C:/Users/amal.bahrini/Desktop/Data cloud/ExtendedLookupFieldControl.cs 6/12


26/11/2024 11:14 ExtendedLookupFieldControl.cs
}

private void InitialiseMultipleItemSelectionControls()


{
if (Page.IsPostBack)
return;

SPList lookupList = GetLookupList();


if (lookupList != null)
{
List<SharePointHelper.ExtendedLookupColumnValues> values =
SharePointHelper.GetColumnValues(lookupList, _displayColumnId, _valueColumnId);

_itemDetails = new Dictionary<int, string>();


foreach (SharePointHelper.ExtendedLookupColumnValues value in values)
{
_itemDetails.Add(Convert.ToInt32(value.Value), value.Display);
}

if (IsEditModeValid(_lookupData, lookupList.ID))
{
List<SharePointHelper.ExtendedLookupColumnValues> selectionValues =
GetSelectedLookupColumns(lookupList, _lookupData);

foreach (SharePointHelper.ExtendedLookupColumnValues value in selectionValues)


{
gipLookupItems.AddSelectedItem(value.Value.ToString(), value.Display);
}

UpdateCandidateColumns(values, selectionValues);
}

foreach (SharePointHelper.ExtendedLookupColumnValues value in values)


{
gipLookupItems.AddItem(value.Value.ToString(), value.Display, string.Empty,
string.Empty);
}
}
}

#endregion Initialise New and Edit

#region Private Methods

private void AddLookupValuesToLookupData(SPFieldLookupValueCollection lookupValues)


{
foreach (SPFieldLookupValue lookupValue in lookupValues)
{
AddLookupValueToLookupData(lookupValue);
}
}

private void AddLookupValueToLookupData(SPFieldLookupValue lookupValue)


{
_lookupData.SavedDisplayValues.Add(lookupValue.LookupId, lookupValue.LookupValue);
}

private SPList GetLookupList()


{
SPList lookupList;
using (SPWeb web = SPContext.Current.Site.OpenWeb(_webSourceId))
{
lookupList = (from list in web.Lists.Cast<SPList>()
where list.ID.Equals(_lookupListId)
select list).SingleOrDefault();
}

return lookupList;
}

file:///C:/Users/amal.bahrini/Desktop/Data cloud/ExtendedLookupFieldControl.cs 7/12


26/11/2024 11:14 ExtendedLookupFieldControl.cs

private void InitialiseControls()


{
if (_isInitialised)
return;

string data = lookupfieldtext == null


? string.Empty
: lookupfieldtext;

_lookupData = !string.IsNullOrEmpty(data) ?
Serialization<ExtendedLookupData>.DeserializeObject(data) : new ExtendedLookupData();

switch (ControlMode)
{

case SPControlMode.Display:
InitialiseForDisplay();
break;
case SPControlMode.Edit:
case SPControlMode.New:
InitialiseForNewEdit();
break;
}

_isInitialised = true;
}

private void UpdateCandidateColumns(List<SharePointHelper.ExtendedLookupColumnValues>


candidate, List<SharePointHelper.ExtendedLookupColumnValues> selection)
{
if (candidate.Count > 0 && selection.Count > 0)
{
foreach (SharePointHelper.ExtendedLookupColumnValues item in selection)
{
var candidateItem = (from i in candidate
where i.Display == item.Display && DoesEqual(i.Value,
item.Value)
select i).FirstOrDefault();

if (candidateItem != null)
{
candidate.Remove(candidateItem);
}
}
}
}

private bool DoesEqual(object candidate, object selection)


{
int candidateInt;
if (Int32.TryParse(candidate.ToString(), out candidateInt))
{
int selectionInt;
if (Int32.TryParse(selection.ToString(), out selectionInt))
{
return candidateInt == selectionInt;
}
}
else
{
double candidateDouble;
if (double.TryParse(candidate.ToString(), out candidateDouble))
{
double selectionDouble;
if (double.TryParse(selection.ToString(), out selectionDouble))
{
return candidateDouble.Equals(selectionDouble);
}

file:///C:/Users/amal.bahrini/Desktop/Data cloud/ExtendedLookupFieldControl.cs 8/12


26/11/2024 11:14 ExtendedLookupFieldControl.cs
}
}

return false;
}

private List<SharePointHelper.ExtendedLookupColumnValues> GetSelectedLookupColumns(SPList


lookupList, ExtendedLookupData lookupData)
{
return GetSelectedLookupColumns(lookupList, lookupData, true);
}

private List<SharePointHelper.ExtendedLookupColumnValues> GetSelectedLookupColumns(SPList


lookupList, ExtendedLookupData lookupData, bool removeInvalidEntries)
{
List<SharePointHelper.ExtendedLookupColumnValues> columns = new
List<SharePointHelper.ExtendedLookupColumnValues>();

if (lookupData != null && lookupData.SavedDisplayValues != null &&


lookupData.SavedDisplayValues.Count > 0)
{
foreach (KeyValuePair<int, string> value in lookupData.SavedDisplayValues)
{
string currentDisplayValue = null;
if (lookupList != null)
{
currentDisplayValue = (from item in lookupList.Items.Cast<SPListItem>()
where DoesEqual(item[_valueColumnId], value.Key)
select item.Title).FirstOrDefault();
}

if (string.IsNullOrEmpty(currentDisplayValue) && !removeInvalidEntries)


{
currentDisplayValue = value.Value;
}

if (!string.IsNullOrEmpty(currentDisplayValue))
{
columns.Add(new SharePointHelper.ExtendedLookupColumnValues { Value =
value.Key, Display = currentDisplayValue });
}
}
}

return columns;
}

private SPFieldLookupValueCollection GetMultipleItemSelectionValues()


{
SPFieldLookupValueCollection lookupValues = new SPFieldLookupValueCollection();

if (gipLookupItems.SelectedIds == null || gipLookupItems.SelectedIds.Count > 0)


{
// From all available items, filter by the selected item ids.
lookupValues.AddRange(from KeyValuePair<int, string> kvp in _itemDetails
where (
from gip in
gipLookupItems.SelectedIds.Cast<string>()
where Convert.ToInt32(gip) == kvp.Key
select gip
).Contains(kvp.Key.ToString())
select new SPFieldLookupValue(kvp.Key, kvp.Value));
}

return lookupValues;
}

private SPFieldLookupValue GetSingleItemSelectionValue()


{

file:///C:/Users/amal.bahrini/Desktop/Data cloud/ExtendedLookupFieldControl.cs 9/12


26/11/2024 11:14 ExtendedLookupFieldControl.cs
SPFieldLookupValue lookupValue = null;

if (ddlLookupItems != null &&


!string.IsNullOrEmpty(ddlLookupItems.SelectedItem.Value))
{
lookupValue = new
SPFieldLookupValue(Convert.ToInt32(ddlLookupItems.SelectedItem.Value),
ddlLookupItems.SelectedItem.Text);
}

return lookupValue;
}

/// <summary>
/// If lookup list or value column Id has changed since the last time this field's value
was saved, the selected values are no longer valid,
/// so the edit mode is invalidated.
/// </summary>
/// <param name="lookupData">ExtendedLookupData object of the current fields saved values.
</param>
/// <param name="lookupListId">The id of the lookup list.</param>
/// <returns>If edit mode is valid.</returns>
private bool IsEditModeValid(ExtendedLookupData lookupData, Guid lookupListId)
{
return (ControlMode == SPControlMode.Edit && lookupListId == lookupData.ListId &&
_valueColumnId == lookupData.ValueId);
}

private string GetFieldValuesAsLinks(Guid webId, Guid listId, Guid valueColumnId,


List<SharePointHelper.ExtendedLookupColumnValues> values)
{
if (values == null || values.Count == 0)
return string.Empty;

string displayFormUrl;
Dictionary<int, bool> itemExists = new Dictionary<int, bool>();

using (SPSecurity.SuppressAccessDeniedRedirectInScope scope = new


SPSecurity.SuppressAccessDeniedRedirectInScope())
{
try
{
using (SPWeb web = SPContext.Current.Site.OpenWeb(webId))
{
SPList lookupList = (from list in web.Lists.Cast<SPList>()
where list.ID.Equals(listId)
select list).SingleOrDefault();

if (lookupList != null && lookupList.Fields.Contains(valueColumnId))


{
foreach (SharePointHelper.ExtendedLookupColumnValues value in values)
{
int itemId = Convert.ToInt32(value.Value);
SPListItem listItem = (from item in
lookupList.Items.Cast<SPListItem>()
where item.ID == itemId
select item).SingleOrDefault();

itemExists.Add(itemId, listItem != null);


}
}

displayFormUrl = lookupList == null ? null :


string.Concat(lookupList.ParentWeb.Url, "/_layouts/listform.aspx?PageType=4&ListId=",
listId.ToString("B"));
}
}
catch (UnauthorizedAccessException)
{

file:///C:/Users/amal.bahrini/Desktop/Data cloud/ExtendedLookupFieldControl.cs 10/12


26/11/2024 11:14 ExtendedLookupFieldControl.cs
displayFormUrl = null;
}
}
if (string.IsNullOrEmpty(displayFormUrl))
{
return null;
}

StringBuilder sb = new StringBuilder();

for (int ii = 0; ii < values.Count; ii++)


{
if (ii > 0)
{
sb.Append(DisplayDelimiter);
}

int itemId = Convert.ToInt32(values[ii].Value);


if (itemExists[itemId])
{
StringBuilder innerBuilder = new StringBuilder();
innerBuilder.Append(displayFormUrl);
innerBuilder.Append("&ID=");
innerBuilder.Append(values[ii].Value.ToString());
innerBuilder.Append("&RootFolder=*");
sb.Append("<a ");
sb.Append("href=\"");
sb.Append(innerBuilder);
sb.Append("\">");
sb.Append(SPHttpUtility.HtmlEncode(values[ii].Display));
sb.Append("</a>");
}
else
{
sb.Append(SPHttpUtility.HtmlEncode(values[ii].Display));
}
}

return sb.ToString();
}
private string GetFieldValuesAsLinksAll(Guid webId, Guid listId, Guid valueColumnId,
List<SharePointHelper.ExtendedLookupColumnValues> values)
{
if (values == null || values.Count == 0)
return string.Empty;

string displayFormUrl;
Dictionary<int, bool> itemExists = new Dictionary<int, bool>();

using (SPSecurity.SuppressAccessDeniedRedirectInScope scope = new


SPSecurity.SuppressAccessDeniedRedirectInScope())
{
try
{
using (SPWeb web = SPContext.Current.Site.OpenWeb(webId))
{
SPList lookupList = (from list in web.Lists.Cast<SPList>()
where list.ID.Equals(listId)
select list).SingleOrDefault();

if (lookupList != null && lookupList.Fields.Contains(valueColumnId))


{
foreach (SharePointHelper.ExtendedLookupColumnValues value in values)
{
int itemId = Convert.ToInt32(value.Value);
SPListItem listItem = (from item in
lookupList.Items.Cast<SPListItem>()
where item.ID == itemId
select item).SingleOrDefault();

file:///C:/Users/amal.bahrini/Desktop/Data cloud/ExtendedLookupFieldControl.cs 11/12


26/11/2024 11:14 ExtendedLookupFieldControl.cs

itemExists.Add(itemId, listItem != null);


}
}

displayFormUrl = lookupList == null ? null :


string.Concat(lookupList.ParentWeb.Url, "/_layouts/listform.aspx?PageType=4&ListId=",
listId.ToString("B"));
}
}
catch (UnauthorizedAccessException)
{
displayFormUrl = null;
}
}
if (string.IsNullOrEmpty(displayFormUrl))
{
return null;
}

StringBuilder sb = new StringBuilder();


String result = "";
for (int ii = 0; ii < values.Count; ii++)
{
if (ii > 0)
{
sb.Append(DisplayDelimiter);
}

int itemId = Convert.ToInt32(values[ii].Value);


if (itemExists[itemId])
{
StringBuilder innerBuilder = new StringBuilder();
innerBuilder.Append(displayFormUrl);
innerBuilder.Append("&ID=");
innerBuilder.Append(values[ii].Value.ToString());
innerBuilder.Append("&RootFolder=*");
sb.Append("<a ");
sb.Append("href=\"");
sb.Append(innerBuilder);
sb.Append("\">");
sb.Append(SPHttpUtility.HtmlEncode(values[ii].Display));
sb.Append("</a>");
result = innerBuilder.ToString();
}
else
{
sb.Append(SPHttpUtility.HtmlEncode(values[ii].Display));
}
}

return result;
}

#endregion Private Methods


}
}

file:///C:/Users/amal.bahrini/Desktop/Data cloud/ExtendedLookupFieldControl.cs 12/12

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy