You've already forked linux-packaging-mono
Imported Upstream version 4.3.2.467
Former-commit-id: 9c2cb47f45fa221e661ab616387c9cda183f283d
This commit is contained in:
@@ -32,7 +32,7 @@ namespace System.Web.UI.WebControls.Adapters {
|
||||
writer.WriteBreak();
|
||||
break;
|
||||
case BulletedListDisplayMode.HyperLink:
|
||||
//
|
||||
// TODO: if index == 0, set accesskey. Needs a new RenderBeginHyperlink method.
|
||||
string targetURL = Control.ResolveClientUrl(items[index].Value);
|
||||
if (items[index].Enabled) {
|
||||
PageAdapter.RenderBeginHyperlink(writer, targetURL, true /* encode */, items[index].Text);
|
||||
@@ -45,7 +45,7 @@ namespace System.Web.UI.WebControls.Adapters {
|
||||
break;
|
||||
case BulletedListDisplayMode.LinkButton:
|
||||
if (items[index].Enabled) {
|
||||
//
|
||||
// TODO: if index == 0, set accesskey. Needs a new RenderPostBackEvent method.
|
||||
PageAdapter.RenderPostBackEvent(writer, Control.UniqueID, index.ToString(CultureInfo.InvariantCulture),
|
||||
items[index].Text, items[index].Text);
|
||||
} else {
|
||||
|
@@ -21,8 +21,8 @@ namespace System.Web.UI.Adapters {
|
||||
protected internal override void EndRender(HtmlTextWriter writer) {
|
||||
}
|
||||
|
||||
//
|
||||
|
||||
// BUGBUG: This override is for compatibility with MMIT.
|
||||
// MMIT legacy pages also use this adapter -UNDONE: Review once MMIT legacy plan is complete.
|
||||
protected internal override void Render(HtmlTextWriter writer) {
|
||||
WmlTextWriter wmlWriter = writer as WmlTextWriter;
|
||||
if (wmlWriter == null) {
|
||||
|
@@ -20,8 +20,8 @@ namespace System.Web.UI.WebControls.Adapters {
|
||||
|
||||
String text = Control.Text;
|
||||
if (text.Length == 0) {
|
||||
// Whidbey 18195
|
||||
|
||||
// Whidbey 18195 UNDONE: This solution is somewhat ad hoc, awaiting spec resolution on IStaticTextControl
|
||||
// in M2. For now, take text from first IStaticTextControl or DataboundLiteralControl.
|
||||
foreach(Control child in Control.Controls) {
|
||||
if (child is IStaticTextControl) {
|
||||
text = ((IStaticTextControl)child).Text;
|
||||
|
@@ -10,9 +10,9 @@ namespace System.Web.UI.WebControls.Adapters {
|
||||
using System.Web.UI.Adapters;
|
||||
using System.Web.UI.WebControls;
|
||||
|
||||
//
|
||||
|
||||
|
||||
// REVIEW: Inheritance. If this inherits from ImageButtonAdapter, there is no way to create a
|
||||
// WmlImageAdapter and set the Control property to delegate rendering (base.Render, below). Control is read-only.
|
||||
// Maybe Control should be get/set for this situation.
|
||||
public class WmlImageButtonAdapter : WmlImageAdapter {
|
||||
|
||||
protected new ImageButton Control {
|
||||
@@ -30,7 +30,7 @@ namespace System.Web.UI.WebControls.Adapters {
|
||||
postUrl = Control.ResolveClientUrl (Control.PostBackUrl);
|
||||
}
|
||||
|
||||
//
|
||||
// UNDONE: Replace hard coded string indexer with strongly typed capability.
|
||||
if (Page != null && Page.Request != null && (String)Page.Request.Browser["supportsImageSubmit"] == "false") {
|
||||
writer.EnterStyle(Control.ControlStyle);
|
||||
|
||||
|
@@ -21,7 +21,7 @@ namespace System.Web.UI.WebControls.Adapters {
|
||||
protected internal override void EndRender(HtmlTextWriter writer) {
|
||||
}
|
||||
|
||||
//
|
||||
// BUGBUG: This override is for compatibility with MMIT only. -UNDONE: Review once MMIT legacy plan is complete.
|
||||
protected internal override void Render(HtmlTextWriter writer) {
|
||||
WmlTextWriter wmlWriter = writer as WmlTextWriter;
|
||||
if (wmlWriter == null) {
|
||||
|
@@ -20,8 +20,8 @@ namespace System.Web.UI.Adapters {
|
||||
protected internal override void EndRender(HtmlTextWriter writer) {
|
||||
}
|
||||
|
||||
//
|
||||
|
||||
// BUGBUG: This override is for compatibility with MMIT.
|
||||
// MMIT legacy pages also use this adapter -UNDONE: Review once MMIT legacy plan is complete.
|
||||
protected internal override void Render(HtmlTextWriter writer) {
|
||||
WmlTextWriter wmlWriter = writer as WmlTextWriter;
|
||||
if (wmlWriter == null) {
|
||||
|
@@ -67,8 +67,8 @@ namespace System.Web.UI.Adapters {
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
|
||||
// UNDONE: Internal because needed by WmlTextWriter. Consider removing this prop somehow.
|
||||
// Returns true if form variables have been written.
|
||||
internal bool WrittenFormVariables {
|
||||
get {
|
||||
return _writtenFormVariables;
|
||||
@@ -131,8 +131,8 @@ namespace System.Web.UI.Adapters {
|
||||
return collection;
|
||||
}
|
||||
|
||||
//
|
||||
|
||||
// UNDONE: For M1, we only have Wml browsers which do not support accesskey. For later milestones, make this
|
||||
// dependent on a capability or replace with a capability.
|
||||
private bool DoesBrowserSupportAccessKey() {
|
||||
return false;
|
||||
}
|
||||
@@ -235,16 +235,16 @@ namespace System.Web.UI.Adapters {
|
||||
}
|
||||
|
||||
// Renders the beginning of the form.
|
||||
//
|
||||
// UNDONE: Remove internal modifier when method is completely removed from writer.
|
||||
protected internal virtual void RenderBeginForm(WmlTextWriter writer) {
|
||||
|
||||
RenderBeginCardTag(writer);
|
||||
|
||||
// Write form variables.
|
||||
|
||||
//
|
||||
|
||||
|
||||
// UNDONE: Move writer._provideBackButton to this adapter.
|
||||
// Review: In V1 we had a writer.ProvideBackButton property, is there any need for this with (more advanced)
|
||||
// whidbey devices?
|
||||
_writtenFormVariables = true;
|
||||
if (_formVariables == null) {
|
||||
_formVariables = new ListDictionary();
|
||||
@@ -259,7 +259,7 @@ namespace System.Web.UI.Adapters {
|
||||
RenderSetFormVariables(writer);
|
||||
RenderPostUrlFormVariable(writer);
|
||||
writer.WriteLine("</refresh></onevent>");
|
||||
//
|
||||
// UNDONE: formAdapter.RenderExtraCardElements(this);
|
||||
writer.BeginFormOrPanel();
|
||||
}
|
||||
|
||||
@@ -432,7 +432,7 @@ namespace System.Web.UI.Adapters {
|
||||
RenderTargetAndArgumentPostFields(writer, target, argument, postFieldType);
|
||||
RenderPostFieldVariableDictionary(writer, _dynamicPostFields);
|
||||
RenderPostFieldDictionary(writer, _staticPostFields);
|
||||
//
|
||||
// UNDONE: Add postbacks for variables which are not on the current page.
|
||||
writer.WriteEndTag("go");
|
||||
}
|
||||
|
||||
@@ -442,8 +442,8 @@ namespace System.Web.UI.Adapters {
|
||||
return;
|
||||
}
|
||||
writer.Write("?");
|
||||
//
|
||||
|
||||
// UNDONE: MMIT IPageAdapter.PersistCookielessData NYI
|
||||
// if(Page.Adapter.PersistCookielessData && Browser["canRenderOneventAndPrevElementsTogether"] != "false")
|
||||
if (!StringUtil.EqualsIgnoreCase((string)Browser["canRenderOneventAndPrevElementsTogether"], "false")) {
|
||||
queryString = writer.ReplaceFormsCookieWithVariable(queryString);
|
||||
}
|
||||
@@ -504,7 +504,7 @@ namespace System.Web.UI.Adapters {
|
||||
|
||||
writer.Write("<onevent type=\"onenterforward\">");
|
||||
RenderFormPostInGoAction(writer, null, _postBackEventArgumentVarName, WmlPostFieldType.Variable, String.Empty);
|
||||
//
|
||||
// REVIEW: Should we always include page hidden variables.
|
||||
writer.WriteLine("</onevent>");
|
||||
|
||||
writer.WriteLine("<onevent type=\"onenterbackward\"><prev /></onevent>");
|
||||
|
@@ -11,7 +11,7 @@ namespace System.Web.UI.WebControls.Adapters {
|
||||
|
||||
public class WmlPhoneLinkAdapter : PhoneLinkAdapter {
|
||||
|
||||
//
|
||||
// UNDONE: Add style.
|
||||
protected internal override void Render(HtmlTextWriter markupWriter) {
|
||||
WmlTextWriter writer = (WmlTextWriter)markupWriter;
|
||||
String text, url, phoneNumber;
|
||||
@@ -42,7 +42,7 @@ namespace System.Web.UI.WebControls.Adapters {
|
||||
if (Page != null && Page.Request != null) {
|
||||
browser = Page.Request.Browser;
|
||||
}
|
||||
//
|
||||
// TODO: Replace hard coded string key.
|
||||
if (browser != null && (String)browser["canInitiateVoiceCall"] != "true") {
|
||||
text = String.Format(controlText,
|
||||
originalNumber);
|
||||
@@ -54,7 +54,7 @@ namespace System.Web.UI.WebControls.Adapters {
|
||||
// showing as text so it can be selected. If it is not
|
||||
// formatted in the text yet, append it to the end of the
|
||||
// text.
|
||||
//
|
||||
// TODO: Replace hard coded string key.
|
||||
if (browser != null && browser["requiresPhoneNumbersAsPlainText"] == "true") {
|
||||
text = controlText + " " + phoneNumber;
|
||||
url = String.Empty;
|
||||
|
@@ -141,14 +141,14 @@ namespace System.Web.UI.WebControls.Adapters {
|
||||
// RenderAsGroup returns a RadioButtonGroup object if the group should be
|
||||
// rendered in a single <select> statement, or null if autopostback should
|
||||
// be enabled.
|
||||
//
|
||||
// UNDONE: Check more general case when radiobuttons do not all share the same parent
|
||||
private RadioButtonGroup RenderAsGroup(RadioButton r) {
|
||||
bool startedSequence = false;
|
||||
bool finishedSequence = false;
|
||||
|
||||
RadioButtonGroup group = new RadioButtonGroup();
|
||||
|
||||
//
|
||||
//TODO : Check all controls on page
|
||||
foreach (Control c in r.Parent.Controls) {
|
||||
RadioButton radioSibling = c as RadioButton;
|
||||
LiteralControl literalSibling = c as LiteralControl;
|
||||
|
@@ -33,7 +33,7 @@ namespace System.Web.UI.WebControls.Adapters {
|
||||
|
||||
if (Control.TextMode == TextBoxMode.Password) {
|
||||
value = String.Empty;
|
||||
//
|
||||
// UNDONE: Consider adding property or wml adapter property to set requiresRandomID to true.
|
||||
requiresRandomID = true;
|
||||
}
|
||||
|
||||
@@ -53,8 +53,8 @@ namespace System.Web.UI.WebControls.Adapters {
|
||||
writer.MapClientIDToShortName(Control.ClientID, requiresRandomID);
|
||||
}
|
||||
|
||||
//
|
||||
|
||||
// UNDONE: There are some wml-specific properties (format, title, size, maxLength) which
|
||||
// we should consider for Whidbey.
|
||||
RenderTextBox((WmlTextWriter)writer, Control.ClientID,
|
||||
value,
|
||||
null /* format */,
|
||||
@@ -69,7 +69,7 @@ namespace System.Web.UI.WebControls.Adapters {
|
||||
// Renders the TextBox.
|
||||
public virtual void RenderTextBox(WmlTextWriter writer, String id, String value, String format, String title, bool password, int size, int maxLength, bool generateRandomID) {
|
||||
if (!writer.AnalyzeMode) {
|
||||
//
|
||||
// UNDONE: Handle rendersBreakBeforeWmlSelectAndInput, if this capability is still needed for Whidbey devices
|
||||
|
||||
// VSWhidbey 147458. Close any style tags.
|
||||
writer.CloseCurrentStyleTags();
|
||||
|
@@ -223,6 +223,10 @@ namespace System.Web.UI.WebControls {
|
||||
}
|
||||
}
|
||||
|
||||
internal void InternalEnsureDataBound() {
|
||||
EnsureDataBound();
|
||||
}
|
||||
|
||||
|
||||
protected virtual void OnDataBound(EventArgs e) {
|
||||
EventHandler handler = Events[EventDataBound] as EventHandler;
|
||||
|
@@ -361,7 +361,7 @@ namespace System.Web.UI.WebControls {
|
||||
// strIndex is now definitely the index as a string, regardless of which case postDataKey was in.
|
||||
int index = Int32.Parse(strIndex, CultureInfo.InvariantCulture);
|
||||
|
||||
EnsureDataBound();
|
||||
EnsureDataBoundInLoadPostData();
|
||||
|
||||
// Maintain state from the form
|
||||
if (index >= 0 && index < Items.Count) {
|
||||
|
@@ -71,7 +71,6 @@ namespace System.Web.UI.WebControls {
|
||||
/// <para>Indicates the type of the item in the <see cref='System.Web.UI.WebControls.DataGrid'/>.</para>
|
||||
/// </devdoc>
|
||||
public virtual ListItemType ItemType {
|
||||
[System.Runtime.TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
|
||||
get {
|
||||
return itemType;
|
||||
}
|
||||
|
@@ -154,7 +154,7 @@ namespace System.Web.UI.WebControls {
|
||||
|
||||
string [] selectedItems = postCollection.GetValues(postDataKey);
|
||||
|
||||
EnsureDataBound();
|
||||
EnsureDataBoundInLoadPostData();
|
||||
if (selectedItems != null) {
|
||||
|
||||
ValidateEvent(postDataKey, selectedItems[0]);
|
||||
|
@@ -1 +1 @@
|
||||
3d78a8ec9125f079b9fa3c63542aaebab365568c
|
||||
722176466a95ca5d2aa5b924fffaa994f17ec5ba
|
@@ -6,7 +6,7 @@
|
||||
|
||||
namespace System.Web.UI.WebControls {
|
||||
|
||||
//
|
||||
// TODO, nikhilko: Change namespace to System.Web.UI
|
||||
|
||||
|
||||
/// <devdoc>
|
||||
|
@@ -8,4 +8,4 @@
|
||||
set;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@@ -39,6 +39,7 @@ namespace System.Web.UI.WebControls {
|
||||
private string cachedSelectedValue;
|
||||
private ArrayList cachedSelectedIndices;
|
||||
private bool _stateLoaded;
|
||||
private bool _asyncSelectPending;
|
||||
|
||||
|
||||
/// <devdoc>
|
||||
@@ -582,10 +583,48 @@ namespace System.Web.UI.WebControls {
|
||||
_stateLoaded = true;
|
||||
}
|
||||
|
||||
|
||||
private void OnDataSourceViewSelectCallback(IEnumerable data) {
|
||||
_asyncSelectPending = false;
|
||||
PerformDataBinding(data);
|
||||
PostPerformDataBindingAction();
|
||||
}
|
||||
|
||||
protected override void OnDataBinding(EventArgs e) {
|
||||
base.OnDataBinding(e);
|
||||
IEnumerable data = GetData().ExecuteSelect(DataSourceSelectArguments.Empty);
|
||||
PerformDataBinding(data);
|
||||
DataSourceView view = GetData();
|
||||
|
||||
// view could be null when a user implements his own GetData().
|
||||
if (null == view) {
|
||||
throw new InvalidOperationException(SR.GetString(SR.DataControl_ViewNotFound, ID));
|
||||
}
|
||||
|
||||
// DevDiv 1036362: enable async model binding for ListControl
|
||||
bool useAsyncSelect = false;
|
||||
if (AppSettings.EnableAsyncModelBinding) {
|
||||
var modelDataView = view as ModelDataSourceView;
|
||||
useAsyncSelect = modelDataView != null && modelDataView.IsSelectMethodAsync;
|
||||
}
|
||||
|
||||
if (useAsyncSelect) {
|
||||
_asyncSelectPending = true; // disable post data binding action until the callback is invoked
|
||||
view.Select(SelectArguments, OnDataSourceViewSelectCallback);
|
||||
}
|
||||
else {
|
||||
IEnumerable data = view.ExecuteSelect(DataSourceSelectArguments.Empty);
|
||||
PerformDataBinding(data);
|
||||
}
|
||||
}
|
||||
|
||||
internal void EnsureDataBoundInLoadPostData() {
|
||||
if (!SkipEnsureDataBoundInLoadPostData) {
|
||||
EnsureDataBound();
|
||||
}
|
||||
}
|
||||
|
||||
internal bool SkipEnsureDataBoundInLoadPostData {
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
|
||||
@@ -715,6 +754,13 @@ namespace System.Web.UI.WebControls {
|
||||
// performed the databind, and we need to maintain backward compat. OnDataBinding will retrieve the
|
||||
// data from the view synchronously and call PerformDataBinding with the data, preserving the OM.
|
||||
OnDataBinding(EventArgs.Empty);
|
||||
PostPerformDataBindingAction();
|
||||
}
|
||||
|
||||
private void PostPerformDataBindingAction() {
|
||||
if (_asyncSelectPending)
|
||||
return;
|
||||
|
||||
RequiresDataBinding = false;
|
||||
MarkAsDataBound();
|
||||
OnDataBound(EventArgs.Empty);
|
||||
|
@@ -191,7 +191,7 @@ namespace System.Web.UI.WebControls {
|
||||
string[] selectedItems = postCollection.GetValues(postDataKey);
|
||||
bool selectionChanged = false;
|
||||
|
||||
EnsureDataBound();
|
||||
EnsureDataBoundInLoadPostData();
|
||||
if (selectedItems != null) {
|
||||
if (SelectionMode == ListSelectionMode.Single) {
|
||||
|
||||
|
@@ -13,4 +13,4 @@ namespace System.Web.UI.WebControls {
|
||||
Table,
|
||||
List,
|
||||
}
|
||||
}
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user