ASP.NET CustomControl - 属性值上的RenderControl

时间:2011-11-22 15:09:13

标签: asp.net

我想在自定义控件中添加一个属性来扩展它的功能。

<ns:PasswordChange 
  runat="server" 
  ID="pwch" 
  UserId='<%# ResidentId %>' />

在代码中..

[ToolboxData("<{0}:PasswordChange runat=server />")]
public class PasswordChange : WebControl
{
    public string UserId { get; set; }

    public override void RenderControl(HtmlTextWriter writer)
    {
      writer.Write("<script type=\"text/javascript\">");
      writer.Write(script.Replace("{0}",***ajaxCall***));
      writer.Write("</script>");
    } 
    ......

上面的参数ajaxCall包含经过验证的if (string.IsNullOrEmpty(this.UserId))的结果。如果存在UserId,则该评估仅添加一个ajax-URL,否则添加另一个url。

问题是RenderControl时没有加载UserId。这并不令人惊讶,因为这是告诉用户UserId根本就是可用属性的代码。

我想要一些帮助/建议我如何解决这类问题。该属性当然适用于控件的行为。我对这些控件的执行模型并不熟悉。

1 个答案:

答案 0 :(得分:0)

我会尝试在渲染过程中添加LiteralControl,并根据PreLoad的值在UserID上填充它。