using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Web.UI.WebControls;
using System.Web.UI;
using System.Web;
namespace YYControls
{
/// <summary>
/// SmartLabel類的屬性部分
/// </summary>
public partial
class SmartLabel
{
/// <summary>
/// 實現Label控件的回發(Postback)功能
/// </summary>
private
void ImplementPostback()
{
if (
this.EnablePostback)
{
// 使Label支持回發(Postback)的隱藏控件的ID
string hiddenFieldId =
string.Concat(
this.ClientID,
"_", HiddenFieldPostfix);
// 註冊隱藏控件
Page.ClientScript.RegisterHiddenField(hiddenFieldId, "");
// 註冊客戶端腳本
this.Page.ClientScript.RegisterClientScriptResource(
this.GetType(),
"YYControls.SmartLabel.Resources.ScriptLibrary.js");
// 表單提交前將Label控件的的值賦給隱藏控件
this.Page.ClientScript.RegisterOnSubmitStatement(
this.GetType(),
string.Format(
"yy_sl_enablePostback_{0}",
this.ClientID),
string.Format(
"yy_sl_copyTextToHiddenField('{0}', '{1}')",
this.ClientID,
hiddenFieldId));
}
}
/// <summary>
/// 獲取或設置 YYControls.SmartLabel 控件的文本內容
/// </summary>
public
override
string Text
{
get
{
try
{
if (
this.EnablePostback && !
string.IsNullOrEmpty(HttpContext.Current.Request[
string.Concat(
this.ClientID,
"_", HiddenFieldPostfix)]))
{
// 隱藏控件的值
return HttpContext.Current.Request[
string.Concat(
this.ClientID,
"_", HiddenFieldPostfix)];
}
else
{
return
base.Text;
}
}
catch
{
return
base.Text;
}
}
set
{
try
{
if (
this.EnablePostback && !
string.IsNullOrEmpty(HttpContext.Current.Request[
string.Concat(
this.ClientID,
"_", HiddenFieldPostfix)]))
{
// 隱藏控件的值
base.Text = HttpContext.Current.Request[
string.Concat(
this.ClientID,
"_", HiddenFieldPostfix)];
}
else
{
base.Text = value;
}
}
catch
{
base.Text = value;
}
}
}
}
}