1

我在gridview标题行内的asp.net页面中使用jquery ui datepicker,如下所示:

 <asp:TemplateField SortExpression="Published" > 
            <HeaderTemplate>
              <span id="spDate">
                <asp:Button ID="Button2" runat="server"  Text="<%$ Resources:Vacancies, DateRange %>" CssClass="chenge-a" />
                </span>

            </HeaderTemplate>
            <ItemTemplate>
                <asp:Literal ID="PublishedLiteral" runat="server" 
                    Text='<%# DateTime.Parse(Eval("Published", "{0:m}")) == DateTime.Now.Date ? string.Format("<span class=greenText>{0}</span>", GetGlobalResourceObject("Vacancies", "VacancyToday")) : DateTime.Parse(Eval("Published", "{0:d}")).ToString("dd MMM") %>' />
                      -
                      <asp:Literal ID="DeadlineLiteral" runat="server" 
                    Text='<%# DateTime.Parse(Eval("Deadline", "{0:m}")) == DateTime.Now.Date ? string.Format("<span class=orangeText>{0}</span>", GetGlobalResourceObject("Vacancies", "VacancyToday")) : DateTime.Parse(Eval("Deadline", "{0:d}")).ToString("dd MMM") %>' />
            </ItemTemplate>
        </asp:TemplateField>

然后使用以下 Jquery 代码更改文本框的值:

   <script type="text/javascript">
        $(document).ready(function () {
  $(".chenge-a").datepicker({
                onSelect: function (value, date) {
                   alert('The chosen date is ' + value);
                    $(".txt").val(value);
                }
            });

            $(".txt").on('change', function () {
                alert('I am pretty sure the text box changed');
            });
 });

文本框是这样的:

<asp:TextBox ID="txtdatetemp" runat="server" AutoPostBack="True" 
    ontextchanged="txtdatetemp_TextChanged" class="txt"  ></asp:TextBox>

它在gridview之外。我已将服务器端 text_changed 事件附加到它

   protected void txtdatetemp_TextChanged(object sender, EventArgs e)
        {

        }

但它没有被调用。没有客户端功能

 $(".txt").on('change', function () 

叫做。

我想在 jquery ui datepicker 中重新绑定更改日期的 gridview。请提出解决方案。

谢谢

4

1 回答 1

1

我试过这个:

 $(".chenge-a").datepicker({              
                onSelect: function (value, date) {                   
                    $(".txt").val(value);
                    $(".txt").change(function () {
                    }).triggerHandler('change');
                    e.preventDefault();
                }
            });

它奏效了。

于 2013-10-23T11:44:09.003 回答