【问题标题】:ASP.NET Add Jquery Datepicker to a Gridview textbox (on editing gridview)ASP.NET 将 Jquery Datepicker 添加到 Gridview 文本框(在编辑 gridview 时)
【发布时间】:2012-07-18 13:22:36
【问题描述】:

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

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

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

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

这是点击文本框时日期选择器显示的 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 编辑文本框的名称,然后在该文本框上显示日期选择器

【问题讨论】:

    标签: jquery asp.net gridview textbox


    【解决方案1】:

    我的工作是这样的:

    (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);
       }
    }
    

    【讨论】:

      【解决方案2】:

      这里最简单的方法是给你的编辑器添加一个 css 类名,然后将 datepick 应用到所有拥有这个类的编辑器

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

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

      【讨论】:

        【解决方案3】:

        处理 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);
            }
        }
        

        【讨论】:

        • 非常感谢 Amiram Korach,你让我很开心!解决了
        • @B1GB0Y 接受并投票给对你有帮助的答案,特别是如果让它起作用的话。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-04-10
        • 1970-01-01
        相关资源
        最近更新 更多