/// <include file='doc\WmlObjectListAdapter.uex' path='docs/doc[@for="WmlObjectListAdapter.Render"]/*' /> public override void Render(WmlMobileTextWriter writer) { switch (Control.ViewMode) { case ObjectListViewMode.List: if (Control.HasControls()) { writer.BeginCustomMarkup(); RenderChildren(writer); writer.EndCustomMarkup(); return; } RenderItemsList(writer); break; case ObjectListViewMode.Commands: RenderItemMenu(writer, Control.Selection); break; case ObjectListViewMode.Details: if (Control.Selection.HasControls()) { writer.BeginCustomMarkup(); Control.Selection.RenderChildren(writer); writer.EndCustomMarkup(); return; } RenderItemDetails(writer, Control.Selection); break; } }
/// <include file='doc\WmlControlAdapter.uex' path='docs/doc[@for="WmlControlAdapter.RenderLink"]/*' /> protected void RenderLink(WmlMobileTextWriter writer, String targetUrl, String softkeyLabel, bool implicitSoftkeyLabel, bool mapToSoftkey, String text, bool breakAfter) { RenderBeginLink(writer, targetUrl, softkeyLabel, implicitSoftkeyLabel, mapToSoftkey); writer.RenderText(text); RenderEndLink(writer, targetUrl, breakAfter); }
/// <include file='doc\WmlControlAdapter.uex' path='docs/doc[@for="WmlControlAdapter.Render1"]/*' /> public virtual void Render(WmlMobileTextWriter writer) { RenderChildren(writer); }
/// <include file='doc\WmlControlAdapter.uex' path='docs/doc[@for="WmlControlAdapter.RenderPostBackEvent1"]/*' /> protected void RenderPostBackEvent( WmlMobileTextWriter writer, String argument, String softkeyLabel, bool mapToSoftkey, String text, bool breakAfter, WmlPostFieldType postBackType) { bool implicitSoftkeyLabel = false; if (mapToSoftkey) { if (softkeyLabel == null || softkeyLabel.Length == 0) { softkeyLabel = text; implicitSoftkeyLabel = true; } if (!writer.IsValidSoftkeyLabel(softkeyLabel)) { // If softkey label was specified explicitly, then truncate. if (!implicitSoftkeyLabel && softkeyLabel.Length > 0) { softkeyLabel = softkeyLabel.Substring(0, Device.MaximumSoftkeyLabelLength); } else { softkeyLabel = GetDefaultLabel(GoLabel); implicitSoftkeyLabel = true; } } } writer.RenderBeginPostBack(softkeyLabel, implicitSoftkeyLabel, mapToSoftkey); writer.RenderText(text); writer.RenderEndPostBack(Control.UniqueID, argument, postBackType, true, breakAfter); }
/// <include file='doc\WmlControlAdapter.uex' path='docs/doc[@for="WmlControlAdapter.RenderPostBackEvent"]/*' /> protected void RenderPostBackEvent( WmlMobileTextWriter writer, String argument, String softkeyLabel, bool mapToSoftkey, String text, bool breakAfter) { RenderPostBackEvent(writer, argument, softkeyLabel, mapToSoftkey, text, breakAfter, WmlPostFieldType.Normal); }
/// <include file='doc\WmlControlAdapter.uex' path='docs/doc[@for="WmlControlAdapter.RenderSubmitEvent"]/*' /> protected void RenderSubmitEvent( WmlMobileTextWriter writer, String softkeyLabel, String text, bool breakAfter) { RenderPostBackEvent(writer, null, softkeyLabel, true, text, breakAfter, WmlPostFieldType.Submit); }
/// <include file='doc\WmlControlAdapter.uex' path='docs/doc[@for="WmlControlAdapter.RenderEndLink"]/*' /> protected void RenderEndLink(WmlMobileTextWriter writer, String targetUrl, bool breakAfter) { String postback = DeterminePostBack(targetUrl); if (postback != null) { writer.RenderEndPostBack(Control.UniqueID, postback, WmlPostFieldType.Normal, false, breakAfter); } else { writer.RenderEndHyperlink(breakAfter); } }
/// <include file='doc\WmlObjectListAdapter.uex' path='docs/doc[@for="WmlObjectListAdapter.RenderItemMenu"]/*' /> protected virtual void RenderItemMenu(WmlMobileTextWriter writer, ObjectListItem item) { bool requiresDetails = HasItemDetails(); String detailsCommandText = Control.DetailsCommandText.Length == 0 ? SR.GetString(SR.WmlObjectListAdapterDetails) : Control.DetailsCommandText; String softkeyLabel = detailsCommandText.Length <= Device.MaximumSoftkeyLabelLength ? detailsCommandText : null; Style commandStyle = Control.CommandStyle; if (commandStyle.Alignment == Alignment.NotSet) { commandStyle.Alignment = Alignment.Left; } writer.EnterStyle(commandStyle); if (requiresDetails) { RenderPostBackEvent(writer, _showDetails, softkeyLabel, true, detailsCommandText, true, WmlPostFieldType.Raw); } ObjectListCommandCollection commands = Control.Commands; foreach (ObjectListCommand command in commands) { RenderPostBackEvent(writer, command.Name, GetDefaultLabel(GoLabel), false, command.Text, true, WmlPostFieldType.Raw); } writer.ExitStyle(commandStyle); }
/// <include file='doc\WmlPageAdapter.uex' path='docs/doc[@for="WmlPageAdapter.Render"]/*' /> public override void Render(WmlMobileTextWriter writer) { if (RequiresUTF8ContentEncoding()) { Page.Response.ContentEncoding = UTF8Encoding; } writer.BeginResponse(); writer.BeginFile(Page.Request.Url.ToString(), _contentType, Page.Response.Charset); RenderXmlHeader(writer); writer.WriteFullBeginTag("wml"); if (Device.SupportsCacheControlMetaTag) { writer.Write(_cacheExpiry); } else { Page.Response.AppendHeader("Cache-Control", "max-age=0"); } if (Device.CanCombineFormsInDeck) { _renderableForms = Page.ActiveForm.GetLinkedForms(OptimumPageWeight); Debug.Assert(_renderableForms != null, "_renderableForms is null"); } else { _renderableForms = new ArrayList(); _renderableForms.Add(Page.ActiveForm); } foreach (Form form in _renderableForms) { RenderForm(writer, form); } writer.RenderExtraCards(); writer.WriteEndTag("wml"); writer.EndFile(); writer.EndResponse(); }
/// <include file='doc\WmlFormAdapter.uex' path='docs/doc[@for="WmlFormAdapter.RenderExtraCardElements"]/*' /> protected internal virtual void RenderExtraCardElements(WmlMobileTextWriter writer) { Form form = this.Control as Form; if((form != null) && (form.Script != null)) { foreach(Control childControl in form.Script.Controls) { LiteralControl lc = childControl as LiteralControl; if(lc != null) { writer.Write(lc.Text); } else { DataBoundLiteralControl dlc = childControl as DataBoundLiteralControl; if(dlc != null) { writer.Write(dlc.Text); } } } } }
/// <include file='doc\WmlFormAdapter.uex' path='docs/doc[@for="WmlFormAdapter.RenderPager"]/*' /> protected virtual void RenderPager(WmlMobileTextWriter writer) { PagerStyle pagerStyle = Control.PagerStyle; int pageCount = Control.PageCount; if (pageCount <= 1) { return; } int page = Control.CurrentPage; writer.EnterStyle(pagerStyle); if (page < pageCount) { String nextPageText = pagerStyle.GetNextPageText(page); RenderPostBackEvent(writer, (page + 1).ToString(CultureInfo.InvariantCulture), writer.IsValidSoftkeyLabel(nextPageText) ? nextPageText : GetDefaultLabel(NextLabel), true, nextPageText, true); } if (page > 1) { String prevPageText = pagerStyle.GetPreviousPageText(page); RenderPostBackEvent(writer, (page - 1).ToString(CultureInfo.InvariantCulture), writer.IsValidSoftkeyLabel(prevPageText) ? prevPageText : GetDefaultLabel(PreviousLabel), true, prevPageText, true); } writer.ExitStyle(pagerStyle); }
// A helper function to do the common code for DataBind and // RenderChildren. private void DataBindAndRender(WmlMobileTextWriter writer, List list, ArrayList arr) { list.DataSource = arr; list.DataBind(); list.Visible = true; list.RenderControl(writer); }
/// <include file='doc\WmlCalendarAdapter.uex' path='docs/doc[@for="WmlCalendarAdapter.Render"]/*' /> public override void Render(WmlMobileTextWriter writer) { ArrayList arr; DateTime tempDate; DateTimeFormatInfo currentDateTimeInfo = DateTimeFormatInfo.CurrentInfo; String abbreviatedMonthDayPattern = AbbreviateMonthPattern(currentDateTimeInfo.MonthDayPattern); _threadCalendar = currentDateTimeInfo.Calendar; // RendersWmlSelectsAsMenuCards is true means the list control will be // rendered as select/option tags, where the break tag before // them will become an extra line which doesn't like good. bool addBreakBeforeListControl = Device.RendersWmlSelectsAsMenuCards; writer.EnterStyle(Style); Debug.Assert(NotSecondaryUI == NotSecondaryUIInit); switch (SecondaryUIMode) { case FirstPrompt: String promptText = Control.CalendarEntryText; if (String.IsNullOrEmpty(promptText)) { promptText = SR.GetString(SR.CalendarAdapterFirstPrompt); } // Link to input option selection screen RenderPostBackEvent(writer, OptionPrompt.ToString(CultureInfo.InvariantCulture), GetDefaultLabel(GoLabel), true, promptText, true); break; // Render the first secondary page that provides differnt // options to select a date. case OptionPrompt: writer.RenderText(SR.GetString(SR.CalendarAdapterOptionPrompt), !addBreakBeforeListControl); arr = new ArrayList(); // Option to select the default date arr.Add(Control.VisibleDate.ToString( currentDateTimeInfo.ShortDatePattern, CultureInfo.CurrentCulture)); // Option to another page that can enter a date by typing arr.Add(SR.GetString(SR.CalendarAdapterOptionType)); // Options to a set of pages for selecting a date, a week // or a month by picking month/year, week and day // accordingly. Available options are determined by // SelectionMode. arr.Add(SR.GetString(SR.CalendarAdapterOptionChooseDate)); if (Control.SelectionMode == CalendarSelectionMode.DayWeek || Control.SelectionMode == CalendarSelectionMode.DayWeekMonth) { arr.Add(SR.GetString(SR.CalendarAdapterOptionChooseWeek)); if (Control.SelectionMode == CalendarSelectionMode.DayWeekMonth) { arr.Add(SR.GetString(SR.CalendarAdapterOptionChooseMonth)); } } DataBindAndRender(writer, _optionList, arr); break; // Render a title and textbox to capture a date entered by user case TypeDate: if (_textBoxErrorMessage != null) { writer.RenderText(_textBoxErrorMessage, true); } if (_selectList.Visible) { writer.RenderText(SR.GetString(SR.CalendarAdapterOptionEra), true); _selectList.RenderControl(writer); } String numericDateFormat = GetNumericDateFormat(); writer.RenderText(SR.GetString(SR.CalendarAdapterOptionType) + ":", true); writer.RenderText("("); writer.RenderText(numericDateFormat.ToUpper(CultureInfo.InvariantCulture)); writer.RenderText(")"); if (!_selectList.Visible) { writer.RenderText(GetEra(Control.VisibleDate)); } writer.RenderText(String.Empty, true); _textBox.Numeric = true; _textBox.Size = numericDateFormat.Length; _textBox.MaxLength = numericDateFormat.Length; _textBox.Text = Control.VisibleDate.ToString(numericDateFormat, CultureInfo.InvariantCulture); _textBox.Visible = true; _textBox.RenderControl(writer); String okLabel = GetDefaultLabel(OKLabel); // accept softkey for sending the textbox value back to the server RenderPostBackEvent(writer, TypeDateDone.ToString(CultureInfo.InvariantCulture), okLabel, true, okLabel, true, WmlPostFieldType.Raw); break; // Render a paged list for choosing a month case ChooseMonth: { String displayText = String.Format(CultureInfo.CurrentCulture, "{0}:", SR.GetString(SR.CalendarAdapterOptionChooseMonth)); writer.RenderText(displayText, !addBreakBeforeListControl); tempDate = Control.VisibleDate; String abbreviatedYearMonthPattern = AbbreviateMonthPattern(currentDateTimeInfo.YearMonthPattern); // This is to be consistent with ASP.NET Calendar control // on handling YearMonthPattern: // Some cultures have a comma in their YearMonthPattern, // which does not look right in a calendar. Here we // strip the comma off. int indexComma = abbreviatedYearMonthPattern.IndexOf(','); if (indexComma >= 0) { abbreviatedYearMonthPattern = abbreviatedYearMonthPattern.Remove(indexComma, 1); } arr = new ArrayList(); for (int i = 0; i < _monthsToDisplay; i++) { arr.Add(tempDate.ToString(abbreviatedYearMonthPattern, CultureInfo.CurrentCulture)); tempDate = _threadCalendar.AddMonths(tempDate, 1); } arr.Add(GetDefaultLabel(NextLabel)); arr.Add(GetDefaultLabel(PreviousLabel)); DataBindAndRender(writer, _monthList, arr); break; } // Based on the month selected in case ChooseMonth above, render a list of // availabe weeks of the month. case ChooseWeek: { String monthFormat = (GetNumericDateFormat()[0] == 'y') ? "yyyy/M" : "M/yyyy"; String displayText = String.Format(CultureInfo.CurrentCulture, "{0} ({1}):", SR.GetString(SR.CalendarAdapterOptionChooseWeek), Control.VisibleDate.ToString(monthFormat, CultureInfo.CurrentCulture)); writer.RenderText(displayText, !addBreakBeforeListControl); // List weeks of days of the selected month. May include // days from the previous and the next month to fill out // all six week choices. This is consistent with the // ASP.NET Calendar control. // Note that the event handling code of this list control // should be implemented according to the index content // generated here. tempDate = FirstCalendarDay(Control.VisibleDate); arr = new ArrayList(); String weekDisplay; for (int i = 0; i < 6; i++) { weekDisplay = tempDate.ToString(abbreviatedMonthDayPattern, CultureInfo.CurrentCulture); weekDisplay += DaySeparator; tempDate = _threadCalendar.AddDays(tempDate, 6); weekDisplay += tempDate.ToString(abbreviatedMonthDayPattern, CultureInfo.CurrentCulture); arr.Add(weekDisplay); tempDate = _threadCalendar.AddDays(tempDate, 1); } DataBindAndRender(writer, _weekList, arr); break; } // Based on the month and week selected in case ChooseMonth and ChooseWeek above, // render a list of the dates in the week. case ChooseDay: { String displayText = String.Format(CultureInfo.CurrentCulture, "{0}:", SR.GetString(SR.CalendarAdapterOptionChooseDate)); writer.RenderText(displayText, !addBreakBeforeListControl); tempDate = Control.VisibleDate; arr = new ArrayList(); String date; String dayName; StringBuilder dayDisplay = new StringBuilder(); bool dayNameFirst = (GetNumericDateFormat()[0] != 'y'); for (int i = 0; i < 7; i++) { date = tempDate.ToString(abbreviatedMonthDayPattern, CultureInfo.CurrentCulture); if (Control.ShowDayHeader) { // Use the short format for displaying day name dayName = GetAbbreviatedDayName(tempDate); dayDisplay.Length = 0; if (dayNameFirst) { dayDisplay.Append(dayName); dayDisplay.Append(Space); dayDisplay.Append(date); } else { dayDisplay.Append(date); dayDisplay.Append(Space); dayDisplay.Append(dayName); } arr.Add(dayDisplay.ToString()); } else { arr.Add(date); } tempDate = _threadCalendar.AddDays(tempDate, 1); } DataBindAndRender(writer, _dayList, arr); break; } default: Debug.Assert(false, "Unexpected Secondary UI Mode"); break; } writer.ExitStyle(Style); }
/// <include file='doc\WmlObjectListAdapter.uex' path='docs/doc[@for="WmlObjectListAdapter.RenderItemDetails"]/*' /> protected virtual void RenderItemDetails(WmlMobileTextWriter writer, ObjectListItem item) { String backCommandText = Control.BackCommandText.Length == 0 ? GetDefaultLabel(BackLabel) : Control.BackCommandText; String softkeyLabel = backCommandText.Length <= Device.MaximumSoftkeyLabelLength ? backCommandText : null; Style labelStyle = Control.LabelStyle; writer.EnterStyle(labelStyle); writer.RenderText(item[Control.LabelFieldIndex], true); writer.ExitStyle(labelStyle); writer.EnterStyle(Style); IObjectListFieldCollection fields = Control.AllFields; int fieldIndex = 0; foreach (ObjectListField field in fields) { if (field.Visible) { String displayText = String.Format(CultureInfo.InvariantCulture, "{0}: {1}", field.Title, item[fieldIndex]); writer.RenderText(displayText, true); } fieldIndex++; } RenderPostBackEvent(writer, _backToList, softkeyLabel, true, backCommandText, true); writer.ExitStyle(Style); }
/// <include file='doc\WmlFormAdapter.uex' path='docs/doc[@for="WmlFormAdapter.RenderCardTag"]/*' /> protected internal virtual void RenderCardTag(WmlMobileTextWriter writer, IDictionary attributes) { writer.WriteBeginTag("card"); if (attributes != null) { foreach (DictionaryEntry entry in attributes) { writer.WriteAttribute((String)entry.Key, (String)entry.Value, true); } } writer.WriteLine(">"); }
/// <include file='doc\WmlControlAdapter.uex' path='docs/doc[@for="WmlControlAdapter.RenderBeginLink"]/*' /> protected void RenderBeginLink(WmlMobileTextWriter writer, String targetUrl, String softkeyLabel, bool implicitSoftkeyLabel, bool mapToSoftkey) { if (mapToSoftkey && !writer.IsValidSoftkeyLabel(softkeyLabel)) { // If softkey label was specified explicitly, then truncate. if (!implicitSoftkeyLabel && softkeyLabel.Length > 0) { softkeyLabel = softkeyLabel.Substring(0, Device.MaximumSoftkeyLabelLength); } else { softkeyLabel = GetDefaultLabel(LinkLabel); implicitSoftkeyLabel = true; } } String postback = DeterminePostBack(targetUrl); if (postback != null) { writer.RenderBeginPostBack(softkeyLabel, implicitSoftkeyLabel, mapToSoftkey); } else { String prefix = Constants.FormIDPrefix; if (targetUrl.StartsWith(prefix, StringComparison.Ordinal)) { String formID = targetUrl.Substring(prefix.Length); Form form = Control.ResolveFormReference(formID); targetUrl = prefix + form.ClientID; } else { bool absoluteUrl = ( (targetUrl.StartsWith("http:", StringComparison.Ordinal)) || (targetUrl.StartsWith("https:", StringComparison.Ordinal)) ); // AUI 3652 targetUrl = Control.ResolveUrl(targetUrl); bool queryStringWritten = targetUrl.IndexOf('?') != -1; IDictionary dictionary = PageAdapter.CookielessDataDictionary; String formsAuthCookieName = FormsAuthentication.FormsCookieName; if((dictionary != null) && (!absoluteUrl) && (Control.MobilePage.Adapter.PersistCookielessData)) { StringBuilder sb = new StringBuilder(targetUrl); foreach(String name in dictionary.Keys) { if(queryStringWritten) { sb.Append("&"); } else { sb.Append("?"); queryStringWritten = true; } if(name.Equals(formsAuthCookieName) && Device.CanRenderOneventAndPrevElementsTogether ) { sb.Append(name); sb.Append("=$("); sb.Append(writer.MapClientIDToShortName("__facn",false)); sb.Append(")"); } else { sb.Append(name); sb.Append("="); sb.Append(dictionary[name]); } } targetUrl = sb.ToString(); } } writer.RenderBeginHyperlink(targetUrl, false, softkeyLabel, implicitSoftkeyLabel, mapToSoftkey); } }
/// <include file='doc\WmlFormAdapter.uex' path='docs/doc[@for="WmlFormAdapter.Render"]/*' /> public override void Render(WmlMobileTextWriter writer) { String formsAuthCookieName = FormsAuthentication.FormsCookieName; if(!Device.SupportsRedirectWithCookie) { if(!String.IsNullOrEmpty(formsAuthCookieName)) { HttpContext.Current.Response.Cookies.Remove(formsAuthCookieName); } } writer.BeginForm(Control); if (Page.Adapter.PersistCookielessData && Device.CanRenderOneventAndPrevElementsTogether && !String.IsNullOrEmpty(formsAuthCookieName) && Control == Page.ActiveForm ) { IDictionary dictionary = PageAdapter.CookielessDataDictionary; if(dictionary != null) { String value = (String)dictionary[formsAuthCookieName]; if(!String.IsNullOrEmpty(value)) { writer.AddFormVariable("__facn", value, false); } } } MobileControl secondaryUIControl = SecondaryUIControl as MobileControl; writer.EnterLayout(Style); if (secondaryUIControl != null && secondaryUIControl.Form == Control) { SetControlPageRecursive(secondaryUIControl, -1); secondaryUIControl.RenderControl(writer); } else { if (Control.HasControls()) { Panel header = Control.Header; Panel footer = Control.Footer; if (header != null) { writer.BeginCustomMarkup(); header.RenderControl(writer); writer.EndCustomMarkup(); } foreach(Control control in Control.Controls) { if (control != header && control != footer) { control.RenderControl(writer); } } RenderPager(writer); if (footer != null) { writer.BeginCustomMarkup(); footer.RenderControl(writer); writer.EndCustomMarkup(); } } else { RenderPager(writer); } } writer.ExitLayout(Style); writer.EndForm(); }
/// <include file='doc\WmlPageAdapter.uex' path='docs/doc[@for="WmlPageAdapter.RenderForm"]/*' /> protected virtual void RenderForm(WmlMobileTextWriter writer, Form form) { writer.AnalyzeMode = true; form.RenderControl(writer); writer.AnalyzeMode = false; form.RenderControl(writer); }
/// <include file='doc\WmlObjectListAdapter.uex' path='docs/doc[@for="WmlObjectListAdapter.RenderItemsList"]/*' /> protected virtual void RenderItemsList(WmlMobileTextWriter writer) { bool rendersAcceptsInline = Device.RendersWmlDoAcceptsInline; bool rendersSelectsAsMenuCards = Device.RendersWmlSelectsAsMenuCards; bool rendersBreaksAfterAnchor = Device.RendersBreaksAfterWmlAnchor; int pageStart = Control.FirstVisibleItemIndex; int pageSize = Control.VisibleItemCount; ObjectListItemCollection items = Control.Items; if (pageSize == 0 || items.Count == 0) { return; } bool hasDefaultCommand = HasDefaultCommand(); bool onlyHasDefaultCommand = OnlyHasDefaultCommand(); bool requiresSecondScreen = HasItemDetails() || (!onlyHasDefaultCommand && HasCommands()); bool itemRequiresHyperlink = requiresSecondScreen || hasDefaultCommand; writer.EnterLayout(Style); int[] tableFieldIndices = null; if (ShouldRenderAsTable() && (tableFieldIndices = Control.TableFieldIndices).Length != 0) { writer.BeginCustomMarkup(); int fieldCount = tableFieldIndices.Length; writer.Write("<table columns=\""); writer.Write(fieldCount.ToString(CultureInfo.InvariantCulture)); writer.WriteLine("\">"); if (ShouldRenderTableHeaders()) { writer.Write("<tr>"); foreach (int fieldIndex in tableFieldIndices) { writer.Write("<td>"); writer.RenderText(Control.AllFields[fieldIndex].Title); writer.Write("</td>"); } writer.WriteLine("</tr>"); } for (int i = 0; i < pageSize; i++) { ObjectListItem item = items[pageStart + i]; writer.Write("<tr>"); for (int field = 0; field < fieldCount; field++) { writer.Write("<td>"); if (field == 0 && itemRequiresHyperlink) { RenderPostBackEvent(writer, requiresSecondScreen ? String.Format(CultureInfo.InvariantCulture, _showMoreFormatAnchor, item.Index) : item.Index.ToString(CultureInfo.InvariantCulture), GetDefaultLabel(GoLabel), false, item[tableFieldIndices[0]], false, WmlPostFieldType.Raw); } else { writer.RenderText(item[tableFieldIndices[field]]); } writer.Write("</td>"); } writer.WriteLine("</tr>"); } writer.WriteLine("</table>"); writer.EndCustomMarkup(); } else { int labelFieldIndex = Control.LabelFieldIndex; ObjectListField labelField = Control.AllFields[labelFieldIndex]; writer.EnterFormat(Style); for (int i = 0; i < pageSize; i++) { ObjectListItem item = items[pageStart + i]; if (itemRequiresHyperlink) { RenderPostBackEvent(writer, requiresSecondScreen ? String.Format(CultureInfo.InvariantCulture, _showMoreFormatAnchor, item.Index) : item.Index.ToString(CultureInfo.InvariantCulture), GetDefaultLabel(GoLabel), false, item[labelFieldIndex], true, WmlPostFieldType.Raw); } else { writer.RenderText(item[labelFieldIndex], true); } } writer.ExitFormat(Style); } writer.ExitLayout(Style); }