当前位置: 首页>>代码示例>>C#>>正文


C# DataBoundControl类代码示例

本文整理汇总了C#中System.Web.UI.WebControls.DataBoundControl的典型用法代码示例。如果您正苦于以下问题:C# DataBoundControl类的具体用法?C# DataBoundControl怎么用?C# DataBoundControl使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


DataBoundControl类属于System.Web.UI.WebControls命名空间,在下文中一共展示了DataBoundControl类的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: PerformSelect

//引入命名空间
using System;
using System.Collections;
using System.ComponentModel;
using System.Security.Permissions;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Samples.AspNet.Controls.CS {

    [AspNetHostingPermission(SecurityAction.Demand, 
        Level=AspNetHostingPermissionLevel.Minimal)]
    [AspNetHostingPermission(SecurityAction.InheritanceDemand, 
        Level=AspNetHostingPermissionLevel.Minimal)]
    public class TextBoxSet : DataBoundControl {

        private IList alBoxSet;
        public IList BoxSet {
            get {
                if (null == alBoxSet) {
                     alBoxSet = new ArrayList();
                }
                return alBoxSet;                
            }                    
        }
        public string DataTextField {
            get {
                object o = ViewState["DataTextField"];
                return((o == null) ? string.Empty : (string)o);
            }
            set {
                ViewState["DataTextField"] = value;
                if (Initialized) {
                    OnDataPropertyChanged();
                }
            }
        }
        protected override void PerformSelect() {            

           // Call OnDataBinding here if bound to a data source using the
           // DataSource property (instead of a DataSourceID), because the
           // databinding statement is evaluated before the call to GetData.       
            if (! IsBoundUsingDataSourceID) {
                OnDataBinding(EventArgs.Empty);
            }            
            
            // The GetData method retrieves the DataSourceView object from  
            // the IDataSource associated with the data-bound control.            
            GetData().Select(CreateDataSourceSelectArguments(), 
                OnDataSourceViewSelectCallback);
            
            // The PerformDataBinding method has completed.
            RequiresDataBinding = false;
            MarkAsDataBound();
            
            // Raise the DataBound event.
            OnDataBound(EventArgs.Empty);
        }
        private void OnDataSourceViewSelectCallback(IEnumerable retrievedData) {
        
           // Call OnDataBinding only if it has not already been 
           // called in the PerformSelect method.
            if (IsBoundUsingDataSourceID) {
                OnDataBinding(EventArgs.Empty);
            }
            // The PerformDataBinding method binds the data in the  
            // retrievedData collection to elements of the data-bound control.
            PerformDataBinding(retrievedData);                                    
        }
        protected override void PerformDataBinding(IEnumerable retrievedData) {
            base.PerformDataBinding(retrievedData);

            // If the data is retrieved from an IDataSource as an 
            // IEnumerable collection, attempt to bind its values to a 
            // set of TextBox controls.
            if (retrievedData != null) {

                foreach (object dataItem in retrievedData) {
                    
                    TextBox box = new TextBox();
                    
                    // The dataItem is not just a string, but potentially
                    // a System.Data.DataRowView or some other container. 
                    // If DataTextField is set, use it to determine which 
                    // field to render. Otherwise, use the first field.                    
                    if (DataTextField.Length > 0) {
                        box.Text = DataBinder.GetPropertyValue(dataItem, 
                            DataTextField, null);
                    }
                    else {
                        PropertyDescriptorCollection props = 
                            TypeDescriptor.GetProperties(dataItem);

                        // Set the "default" value of the TextBox.
                        box.Text = String.Empty;
                        
                        // Set the true data-bound value of the TextBox,
                        // if possible.
                        if (props.Count >= 1) {                        
                            if (null != props[0].GetValue(dataItem)) {
                                box.Text = props[0].GetValue(dataItem).ToString();
                            }
                        }
                    }                                        
                    
                    BoxSet.Add(box);
                }
            }
        }
        protected override void Render(HtmlTextWriter writer) {

            // Render nothing if the control is empty.            
            if (BoxSet.Count <= 0) {
                return;
            }

            // Make sure the control is declared in a form tag 
            // with runat=server.
            if (Page != null) {
                Page.VerifyRenderingInServerForm(this);
            }
            
            // For this example, render the BoxSet as 
            // an unordered list of TextBox controls.            
            writer.RenderBeginTag(HtmlTextWriterTag.Ul);

            foreach (object item in BoxSet) {
                 
                TextBox box = (TextBox) item;
                
                // Write each element as 
                // <li><input type="text" value="string"><input/></li>
                
                writer.WriteBeginTag("li");
                writer.Write(">");
                writer.WriteBeginTag("input");
                writer.WriteAttribute("type", "text");
                writer.WriteAttribute("value", box.Text);
                writer.Write(">");
                writer.WriteEndTag("input");
                writer.WriteEndTag("li");
            }            

            writer.RenderEndTag();                       
        }
    }
}
开发者ID:.NET开发者,项目名称:System.Web.UI.WebControls,代码行数:148,代码来源:DataBoundControl


注:本文中的System.Web.UI.WebControls.DataBoundControl类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。