У меня есть простой веб-контроль, который работает, вроде.Он просто не позволяет (без ошибок) устанавливать любую переменную в элементе управления, что бы я ни пытался, просто не отображает ничего кроме значений по умолчанию.
Мой элемент управления:
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="Message.ascx.cs" Inherits="Message" %>
<asp:Panel runat="server" ID="ErrorPanel">
<asp:Literal
runat="server"
ID="MessageTextLit"
/>
</asp:Panel>
/// <summary>
/// The type of the message, good, bad etc.
/// </summary>
public enum MessageType
{
Good,
Error
}
public partial class Message : System.Web.UI.UserControl
{
public string MessageText { get; set; } // Text of the error message
public MessageType Type { get; set; } // Message type
protected void Page_Load(object sender, EventArgs e)
{
MessageTextLit.Text = MessageText;
// Set correct CSS class
if (Type == MessageType.Good)
ErrorPanel.CssClass = "good-box";
else if (Type == MessageType.Error)
ErrorPanel.CssClass = "bad-box";
}
}
На моей странице это выглядит как:
<CrystalControls:Message runat="server" ID="TopMessage" Visible="false" />
Затем, когда нажимается кнопка, я делаю:
if (QuestionSubject.Length < 5)
{
TopMessage.MessageText = "Soemthing message";
TopMessage.Type = MessageType.Error;
TopMessage.Visible = true;
}
else if (QuestionBody.Length < 10)
{
TopMessage.MessageText = "Error message";
TopMessage.Type = MessageType.Error;
TopMessage.Visible = true;
}
Я проверил, и если они стреляют, он не выдаетошибки, но ни одна из переменных в классе Message
никогда не устанавливается!Они просто по умолчанию, что бы я ни делал.Я не вижу возможности изменить их значения.