0

我一直在尝试创建一个自定义服务器控件,以使我能够利用 ViewState 和 AutoPostBack,但没有成功。棘手的是我的控件是 HTML 和 JavaScript 的组合。这是渲染输出的一个很好的例子(我也在使用 JS 库,因此是缩写示例):

<input type="text" id="txt" />
<script>
$(function() {
    $("#txt").TurnMeIntoDatePicker({
        value: new Date(1950,1,1)
    });
});
</script>

在此示例中,输入的“id”和 JS 函数的“值”需要作为参数公开(并且它们的值在通过 ViewState 回发后维护)。我见过的每个示例都允许您将参数分配给输入元素,但不能分配给一些自定义的 JS 字符串。我也很想看看你如何添加一个 AutoPostBack 功能,但只是肉汁!

4

1 回答 1

2

你在实现 IPostBackDataHandler 吗?您可以使用它在回发时从输入字段中检索值。此外,您的示例未在输入字段中显示名称......您需要输出名称才能正确回发值。在此处查看示例...

http://msdn.microsoft.com/en-us/library/system.web.ui.ipostbackdatahandler.aspx

您可以使用Page.ClientScript.GetPostBackEventReference(...)来执行 AutoPostBack。例如,如果您想在值更改时回发,您可以呈现如下内容:

protected override void Render(HtmlTextWriter writer)
{
    string content = string.Format("<input type=\"text\" id=\"txt\" onchange=\"{0}\" />", Page.ClientScript.GetPostBackEventReference(this, null));
    writer.Write(content);
}
于 2013-04-19T01:48:44.507 回答