簡體   English   中英

用戶控件屬性?

[英]User Control Properties?

我可以建立一個基本上像“ MasterPage”一樣工作的控件嗎?

我的意思是說,我在多個頁面中都有一個這樣的網格:

<asp:UpdatePanel ID="AnnouncementsPanel" UpdateMode="Conditional" runat="server">
    <ContentTemplate>
        <asp:GridView ID="AnnoucementsGrid" runat="server" AutoGenerateColumns="false" DataKeyNames="Id" >
            <Columns>
                <asp:BoundField DataField="Title" HeaderText="Title" />
                <asp:BoundField DataField="Created" HeaderText="Date" />
                <asp:BoundField DataField="Modified" HeaderText="Last Modified" />
                <asp:ButtonField ButtonType="Button" Text="Process" CommandName="Process" />
            </Columns>
        </asp:GridView>
    </ContentTemplate>
</asp:UpdatePanel>

我想構建一個控件來處理后面的大多數代碼,但是在每種情況下,我都需要聲明性地聲明網格的列。


有沒有辦法創建這樣的控件?

<uc:CrudGrid ID="AnnouncementsCrud" runat="server">
    <Columns>
        <asp:BoundField DataField="Title" HeaderText="Title" />
        <asp:BoundField DataField="Created" HeaderText="Date" />
        <asp:BoundField DataField="Modified" HeaderText="Last Modified" />
        <asp:ButtonField ButtonType="Button" Text="Process" CommandName="Process" />
    </Columns>
</uc:CrudGrid>

或事件更好:

<uc:CrudGrid ID="AnnouncementsCrud" runat="server">
    <Columns>
        <asp:BoundField DataField="Title" HeaderText="Title" />
        <asp:BoundField DataField="Created" HeaderText="Date" />
        <asp:BoundField DataField="Modified" HeaderText="Last Modified" />
    </Columns>
</uc:CrudGrid>

也許必須將標簽命名為“ Fields”,但是能夠放下按鈕,以便可以在UC的代碼隱藏中使用它?

對於對此<3

找到了我想要的確切解決方案:

    [DefaultValue((string)null)]
    [Editor(typeof(System.Web.UI.Design.WebControls.DataControlFieldTypeEditor), typeof(UITypeEditor))]
    [PersistenceMode(PersistenceMode.InnerProperty)]
    public DataControlFieldCollection Columns
    {
        get { return Grid.Columns; }
    }

這樣,我可以在自己的用戶控件中公開網格中的列,並從標記中編輯字段,從而在UC中保留常規功能

取決於您希望它有多積極:-)您可以始終構建自己的控件來執行此操作。 那是一種選擇。

另一個選擇是創建一個附加到網格的輔助對象,並使每個網格保持獨立。

第三種選擇是使用通用代碼創建用戶控件,並通過該用戶控件以編程方式向網格中添加列。

HTH。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM