2015-10-07 33 views
0

我已經創建了自定義控件,它具有標籤和明星指示required.I要更改label.so的顏色我給予ForeColor財產控制,但它不適用。給財產自定義控件,但它不工作

<asp:LabelwithRequired ID="MessageLabelwithRequired" 
runat="server" Text="Message" Required="True" Forecolor="Red"></asp:LabelwithRequired> 

我控制暴露的屬性只有該屬性正在應用,但其他屬性不適用。

任何人都可以幫助我解決這個問題。

回答

1

只需檢查,你是否從Asp.net Label控件中檢索到你的自定義控件。如果不嘗試從它繼承,並且它應該工作。

1

嘗試創建一個服務器控件。然後您需要將它添加到引用中,並將其作爲組件添加到工具箱中。然後您可以使用拖放操作來使用它。此外,還會在屬性窗口中顯示屬性調用TextColor

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 

[assembly: TagPrefix("CustomeLable", "CsLable")] 

namespace ServerControl2 
{ 
    [DefaultProperty("Lable")] 
    [DisplayName("Custome Lable")] 
    [ToolboxData("<{0}:CustomeLable runat=server></{0}:CustomeLable>")] 
    public class CustomeLable : CompositeControl 
    { 
     Panel p; 
     Label lbl; 

     [Bindable(true)] 
     [Category("Appearance")] 
     [DefaultValue("")] 
     [Localizable(true)] 
     public string Text 
     { 
      get 
      { 
       return lbl.Text.Replace('*',' ').Trim(); 
      } 

      set 
      { 
       lbl.Text = value + " *"; // you asked above 
      } 
     } 

     [Bindable(true)] 
     [Category("Appearance")] 
     [DefaultValue("Black")] 
     [Localizable(true)] 
     public Color TextColor 
     { 
      get 
      { 
       return lbl.ForeColor; 
      } 

      set 
      { 
       lbl.ForeColor = value; 
      } 
     } 

     protected override void CreateChildControls() 
     { 
      Controls.Clear(); 
      p = new Panel(); 
      lbl = new Label(); 
      lbl.Text = "Custome Lable *"; 
      p.Controls.Add(lbl); 
      base.CreateChildControls(); 

     } 
     protected override void RecreateChildControls() 
     { 
      EnsureChildControls(); 
     } 
     protected override void Render(HtmlTextWriter writer) 
     { 
      AddAttributesToRender(writer); 
      lbl.RenderControl(writer); 
     } 
    } 
} 

Asp.net Web窗體代碼

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="ATButtonBarControl.Default" %> 

<%@ Register assembly="ServerControl2" namespace="ServerControl2" tagprefix="cc1" %> 

<!DOCTYPE html> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
     <div> 
      <cc1:CustomeLable ID="CustomeLable1" runat="server" /> 
      <br />  
     </div> 
    </form> 
</body> 
</html>