asp.net中載入自使用者定義控制項

來源:互聯網
上載者:User

1:自訂控制項:是以.ascx結尾的分頁檔,使用者控制項必須用頁面載入才能顯示。

案例如下:控制項內容

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="MyMicroUserList.ascx.cs" Inherits="Cfsns.Applications.MicroBlog.Web.MicroBlog.Include.MyMicroUserList" ViewStateMode="Disabled" %>
<%@ Register Src="../Common/Pager.ascx" TagName="Pager" TagPrefix="uc1" %>
<%if (false)
  { %>
//樣式和js檔案使用if(false)的原因是當調試的時候可用也就是DEBUG模式下可用Release模式下不可用頁面人和地方都可以這麼用

<%} %>
<table id="divMicroBlogUserList" class="frame">
    <colgroup>
        <col class="padding_left_width" />
        <col class="logo_user" />
        <col />
        <col style="width: 60px;" />
    </colgroup>
    <tbody class="alter_row_color line_height_normal">
        <asp:Repeater ID="DataList1" runat="server">
            <ItemTemplate>
                <tr keyvalue='<%# Eval("UserId") %>'>
                    <td rowspan="3">
                    </td>
                    <td class="logo_user" rowspan="3">
                        <asp:Image runat="server" userid='<%# Eval("UserId") %>' role="popUserInfo" ImageUrl='<%# Eval("Logo") %>' AlternateText='<%# Eval("RealName") %>' />
                    </td>
                    <td>
                        <asp:HyperLink runat="server" Text='<%# Eval("RealName") %>' NavigateUrl='<%# Cfsns.Applications.MicroBlog.WebConfigs.PagePath.PFollowedList.ToReplaceQueryString("MicroBlogUserType",MicroBlogUserType).ToReplaceQueryString("UserId",Eval("UserId"))%>' CssClass="text_weight" />
                        <asp:Literal runat="server" Text='<%# Eval("Title")%>' />
                    </td>
                    <td rowspan="3">
                        <span class="icon_ListenToEachOther" title="相互關注" runat="server" visible='<%#((int)Eval("SearchFollowedType")==(int)Cfsns.Types.MicroBlogSearchTypes.FollowedAndFans) %>'></span>
                        <div class="frame">
                            <a runat="server" href="javascript:void(0)" title="取消追蹤" onclick='<%# Eval("UserId","microBlogContent.toggleFollowed(this,\"{0}\")") %>'>
                                <%# (int)Eval("SearchFollowedType") >= (int)Cfsns.Types.MicroBlogSearchTypes.Followed ? "取消追蹤" : "關注"%></a>
                        </div>
                        <asp:HyperLink runat="server" NavigateUrl='<%# UrlRedirect.ToReplaceQueryString("UserId",Eval("UserId")).ToReplaceQueryString("OnlyUser",true)%>' Text="查看微博" />
                    </td>
                </tr>
                <tr keyvalue='<%# Eval("UserId") %>'>
                    <td>
                        <asp:Literal ID="Literal2" runat="server" Text='<%# Eval("CompanyName") %>' />
                    </td>
                </tr>
                <tr keyvalue='<%# Eval("UserId") %>'>
                    <td class="text_unimportant">
                        博文:<%# Eval("MicroBlogCount") %>| 粉絲:<%# Eval("MicroBlogFansCount") %></td>
                </tr>
            </ItemTemplate>
        </asp:Repeater>
        <tr id="divEmpty" runat="server">
            <td class="text_empty" colspan="3">
                沒有找到任何使用者
            </td>
        </tr>
    </tbody>
</table>

控制項前台頁面

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Cfsns.Interface;
using Cfsns.Common.Tools.DataExtension;

namespace Cfsns.Applications.MicroBlog.Web.MicroBlog.Include
{
    public partial class MyMicroUserList : System.Web.UI.UserControl, IControlDataList
    {
        Cfsns.Types.MicroBlogSearchTypes microBlogUserType;

        public Cfsns.Types.MicroBlogSearchTypes MicroBlogUserType
        {
            get { return microBlogUserType; }
            set { microBlogUserType = value; }
        }

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                initScript();
            }
        }

        private void initScript()
        {
#if DEBUG
            Cfsns.Common.Tools.Web.JavaScript.RegistScript(this.Page, WebConfigs.ApplicationInfo.RootControlPath + "Source/JS/PathDebug.js");
#else
            Cfsns.Common.Tools.Web.JavaScript.RegistScript(this.Page, WebConfigs.ApplicationInfo.RootControlPath + "Source/JS/PathRelease.js");
#endif
            Cfsns.Common.Tools.Web.JavaScript.RegistScript(this.Page, "~/Source/JS/JOperateCommon.js");
            Cfsns.Common.Tools.Web.JavaScript.RegistScript(this.Page, WebConfigs.ApplicationInfo.RootControlPath + "Source/JS/JMicroBlog.js");

        }

        #region IControlDataList 成員

        public System.Data.DataSet DataSource
        {
            set
            {
                DataList1.DataSource = value.ToSourceTable();
                Pager1.DataSource = value.ToPagerTable();
                divEmpty.Visible = value.IsEmpty();
            }
        }

        private bool editMode;
        public bool EditMode
        {
            set { editMode = value; }
            get { return editMode; }
        }

        #endregion

        #region IControlDataBind 成員

        public object ControlDataBind()
        {
            DataList1.DataBind();
            Pager1.DataBind();
            return true;
        }

        #endregion

        #region IUrlRedirect 成員

        private string urlRedirect = WebConfigs.PagePath.PDefault;

        public string UrlRedirect
        {
            get { return urlRedirect; }
            set { urlRedirect = value; }
        }

        #endregion
    }
}

控制項後台內容

下面是載入控制項的代碼:

 try
                {
                  con = Page.LoadControl(Cfsns.Applications.MicroBlog.WebConfigs.PagePath.PLoadMicroUseList);//這句話是把控制項載入到內從中
                }
                catch (Exception ex)
                {
                    Cfsns.Applications.Api.MasterPage.PopUpMessage(this.Page, ex.Message, true);
                    Cfsns.Bll.SiteLog.LogIt(ex, 10, null);
                    return;
                }
                PlaceHolder1.Controls.Add(con);//這裡是把控制項內容輸出到頁面上

//繫結控制項資料

 OperateSqlAnswer answer = Bll.MicroBlog.MicroBlogUserList(searchContent);
            IControlDataList icontrolDataList = con as IControlDataList;
            icontrolDataList.DataSource = answer.DataSource;
            icontrolDataList.UrlRedirect = WebConfigs.PagePath.PDefault.AppendCurrentQueryString("OnlyUser").AppendCurrentQueryString("UserId").ToReplaceQueryString("ScrollPostionId", "PagerToScrollId").ToReplaceQueryString("p", 2);
            icontrolDataList.DataSource = answer.DataSource;
            icontrolDataList.ControlDataBind();

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.