使用attributes.add(onload ..)在webform上动态添加textboxe

时间:2015-03-02 10:24:22

标签: c# html asp.net jquery-ui-datepicker

我搜索过类似的案例,但找不到与我相匹配的案例,而且我对js,jquery和一般网站的流程并不是很好,我自己也能做到这一点。

我动态添加这样的文本框:

        var nr = new System.Web.UI.HtmlControls.HtmlTableRow();
        var c1 = new System.Web.UI.HtmlControls.HtmlTableCell();
        var c2 = new System.Web.UI.HtmlControls.HtmlTableCell();
        c1.InnerText = Q.Trim(new char[] { '{', '$', '[', ']', '}' }).TrimStart(new char[] { '-' });
        c2.Controls.Add(new TextBox() { ID = "tb_" + c.ToString(), ClientIDMode = System.Web.UI.ClientIDMode.Static });
        var dateControl = c2.Controls[0] as TextBox;
        dateControl.Attributes.Add("autocomplete", "off");
        dateControl.Attributes.Add([event here], "initiateDateControl('"+ dateControl.ID + "')");

当前我正在使用" onclick" [事件在这里],但我想要onload或类似的东西。

function initiateDateControl(dateControl) {
    $("#" + dateControl).datepicker({
        dateFormat: "yy-mm-dd",
        changeYear: true
    });
}

这是因为onload不起作用但onclick有效。如何在页面加载时加载jquery-datepicker?

我不确定是否可以添加正文,因为所有控件都在asp:Content中。

1 个答案:

答案 0 :(得分:1)

一个简单的解决方法是为所有控件提供一个独特的CssClass,如

c2.Controls.Add(new TextBox() { 
    ID = "tb_0", 
    CssClass="my_tb", 
    ClientIDMode = System.Web.UI.ClientIDMode.Static });

然后你就可以像这样在

上准备好DOM
$(document).ready(function () {
    $(".my_tb").datepicker({
        dateFormat: "yy-mm-dd",
        changeYear: true
    });
});

或者您可以使用jQuerys Attribute Starts with Selector

$(document).ready(function () {
    $("input[id^='tb_']").datepicker({
        dateFormat: "yy-mm-dd",
        changeYear: true
    });
});