当使用jquery更改值时,asp.net文本框更改了事件未触发

时间:2013-10-22 17:26:22

标签: javascript jquery asp.net jquery-ui gridview

我在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');
            });
 });

Textbox是这样的:

<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。请建议解决方案。

由于

1 个答案:

答案 0 :(得分:1)

我试过了:

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

并且有效。