ASP.NET将Jquery Datepicker添加到Gridview文本框(在编辑gridview上)

时间:2012-07-19 11:04:16

标签: jquery asp.net gridview textbox

我的问题似乎有点难以理解但很简单,我确信解决方案也很简单。

我有一个可以编辑和更新的Gridview。 我们都知道,当我们点击编辑时,如果列被设置为ReadOnly =“True”,则会出现默认的文本框控件......

我可以通过点击Gridview的编辑按钮动态创建该文本框中的值,这一切都很好......

我的问题是:我想将javascript代码添加到在gridview中单击编辑按钮时创建的动态文本框。

这是单击文本框时Datepicker显示的javascript代码:

<head runat="server">

<link rel="Stylesheet" type="text/css" href="css/jquery.datepick.css" />
<script type="text/javascript" src="js/jquery.datepick.js"></script>

<script type="text/javascript" language="javascript">
    $(function () {    
        $('#Textbox_Name').datepick({ dateFormat: 'dd/mm/yyyy' });            
    });
</script>
</head>

现在,我不想首先将文本框名称放在该代码上,而是想知道我的gridview编辑文本框的名称是否动态创建,然后在该文本框上显示日期选择器

3 个答案:

答案 0 :(得分:1)

处理RowCreated事件:

protected void grid_RowCreated(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowState == DataControlRowState.Edit)
    {
        var textBox = e.Row.FindControl("myTextBox") as TextBox;
        ClientScript.RegisterStartupScript(this.GetType(), "datepick", 
        "$(function () { $('#" + textBox.ClientID + "').datepick({ dateFormat: 'dd/mm/yyyy' });  })", true);
    }
}

答案 1 :(得分:1)

这里简单的方法是在编辑器中添加一个css类名,然后将datepick应用于所有具有此类的编辑器

<script type="text/javascript" language="javascript">
    $(function () {
        $('.className').datepick({ dateFormat: 'dd/mm/yyyy' });
    });
</script>

另请参阅此问题的解决方案,包括更新面板:Asp.Net UpdatePanel in Gridview Jquery DatePicker

答案 2 :(得分:0)

我得到了这样的工作:

(RowDataBound事件)

if (e.Row.RowType == DataControlRowType.DataRow)
{
   TextBox tbOne = e.Row.FindControl("txtMyTextBox") as TextBox;
   if (tbOne != null)
   {
       string js = "$(function() { $('#" + tbOne.ClientID + "').datepicker();  });";
       ClientScript.RegisterStartupScript(this.GetType(), "DatePickJS_" + Guid.NewGuid().ToString("N"), js, true);
   }
}