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>

グリッドビューの外にあります。サーバー側の text_changed イベントをそれに添付しました

   protected void txtdatetemp_TextChanged(object sender, EventArgs e)
        {

        }

しかし、それは呼び出されません。クライアント側機能なし

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

と呼ばれます。

jquery ui datepicker で日付の変更時にグリッドビューを再バインドしたい。それに対する解決策を提案してください。

ありがとう

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 に答える