當前位置: 首頁>>代碼示例>>C#>>正文


C# TableCallback代理代碼示例

本文整理匯總了C#中System.Web.UI.WebControls.WebParts.TableCallback代理的典型用法代碼示例。如果您正苦於以下問題:C# TableCallback代理的具體用法?C# TableCallback怎麽用?C# TableCallback使用的例子?那麽, 這裏精選的代理代碼示例或許可以為您提供幫助。


TableCallback代理屬於System.Web.UI.WebControls.WebParts命名空間,在下文中一共展示了TableCallback代理的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的C#代碼示例。

示例1: TableProviderWebPart

//引入命名空間
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Reflection;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
//This sample code creates a Web Parts control that acts as a provider of table data.
namespace Samples.AspNet.CS.Controls
{
    public sealed class TableProviderWebPart : WebPart, IWebPartTable
    {
        DataTable _table;

        public TableProviderWebPart()
        {
            _table = new DataTable();

            DataColumn col = new DataColumn();
            col.DataType = typeof(string);
            col.ColumnName = "Name";
            _table.Columns.Add(col);

            col = new DataColumn();
            col.DataType = typeof(string);
            col.ColumnName = "Address";
            _table.Columns.Add(col);

            col = new DataColumn();
            col.DataType = typeof(int);
            col.ColumnName = "ZIP Code";
            _table.Columns.Add(col);

            DataRow row = _table.NewRow();
            row["Name"] = "John Q. Public";
            row["Address"] = "123 Main Street";
            row["ZIP Code"] = 98000;
            _table.Rows.Add(row);
        }

        public PropertyDescriptorCollection Schema
        {
            get
            {
                return TypeDescriptor.GetProperties(_table.DefaultView[0]);
            }
        }
        
        public void GetTableData(TableCallback callback)
        {
            callback(_table.Rows);
        }

        public bool ConnectionPointEnabled
        {
            get
            {
                object o = ViewState["ConnectionPointEnabled"];
                return (o != null) ? (bool)o : true;
            }
            set
            {
                ViewState["ConnectionPointEnabled"] = value;
            }
        }

        [ConnectionProvider("Table")]
        public IWebPartTable GetConnectionInterface()
        {
            return new TableProviderWebPart();
        }

        public class TableProviderConnectionPoint : ProviderConnectionPoint
        {
            public TableProviderConnectionPoint(MethodInfo callbackMethod, 
                Type interfaceType, Type controlType,
                string name, string id, bool allowsMultipleConnections)
                : base(callbackMethod, interfaceType, controlType,
                    name, id, allowsMultipleConnections)
            {
            }

            public override bool GetEnabled(Control control)
            {
                return ((TableProviderWebPart)control).ConnectionPointEnabled;
            }
        }
    }
}
開發者ID:.NET開發者,項目名稱:System.Web.UI.WebControls.WebParts,代碼行數:91,代碼來源:TableCallback

示例2: GetTableData

namespace Samples.AspNet.CS.Controls
{
    using System;
    using System.ComponentModel;
    using System.Data;
    using System.Data.SqlClient;
    using System.Reflection;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Collections;

    public class TableConsumer : WebPart
    {
        private IWebPartTable _provider;
        private ICollection _tableData;

        private void GetTableData(object tableData)
        {
            _tableData = (ICollection)tableData;
        }

        protected override void OnPreRender(EventArgs e)
        {
            if (_provider != null)
            {
                _provider.GetTableData(new TableCallback(GetTableData));
            }
        }

        protected override void RenderContents(HtmlTextWriter writer)
        {
            if (_provider != null)
            {
                PropertyDescriptorCollection props = _provider.Schema;
                int count = 0;
                if (props != null && props.Count > 0 && _tableData != null)
                {
                    foreach (PropertyDescriptor prop in props)
                    {
                        foreach (DataRow o in _tableData)
                        {
                            writer.Write(prop.DisplayName + ": " + o[count]);
                        }
                        writer.WriteBreak();
                        writer.WriteLine();
                        count = count + 1;
                    }
                }
                else
                {
                    writer.Write("No data");
                }
            }
            else
            {
                writer.Write("Not connected");
            }
        }

        [ConnectionConsumer("Table")]
        public void SetConnectionInterface(IWebPartTable provider)
        {
            _provider = provider;
        }
    }
}
開發者ID:.NET開發者,項目名稱:System.Web.UI.WebControls.WebParts,代碼行數:67,代碼來源:TableCallback


注:本文中的System.Web.UI.WebControls.WebParts.TableCallback代理示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。