我想在自定义控件中添加一个属性来扩展它的功能。
<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根本就是可用属性的代码。
我想要一些帮助/建议我如何解决这类问题。该属性当然适用于控件的行为。我对这些控件的执行模型并不熟悉。
答案 0 :(得分:0)
我会尝试在渲染过程中添加LiteralControl
,并根据PreLoad
的值在UserID
上填充它。