使用查询字符串中的日期值预填充jquery datepicker gridview文本框

时间:2014-08-20 02:52:06

标签: jquery asp.net vb.net

我有一个名为reserve.aspx的页面,带有此标记:

<asp:TemplateField HeaderText="Book Date" SortExpression="bookingDate">
   <ItemTemplate>
     <asp:HyperLink ID="booking_id" runat="server" Target="_blank" HeaderText="Book Date" NavigateUrl='<%# Eval("bookingDate","order.ashx?d={0}") %>' Text = 'Select' />
   </ItemTemplate> 
</asp:TemplateField>

当用户点击选择并重定向到order.asp页面时,我们希望在下面名为txtdate的datepicker控件中填充 bookingDate 查询字符串的值。

    <script type="text/javascript">

        $(function () {

            $("[id$=txtdate]").datepicker({

                showOn: 'button',

                buttonImageOnly: true,

                buttonImage: 'images/20/calendar200.gif'

            });
            $("[id$=txtdateReceived]").datepicker({

                showOn: 'button',

                buttonImageOnly: true,

                buttonImage: 'images/20/calendar200.gif'

            });

        });

            <asp:TemplateField HeaderText="Event Date(s)">
                <ItemTemplate>
                    <asp:TextBox ID="txtdate" placeholder="MM/DD/YYYY" style="width:95px;" runat="server"></asp:TextBox>
                    <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="txtdate"
                        ErrorMessage="*" SetFocusOnError="True"></asp:RequiredFieldValidator>
                </ItemTemplate>
            </asp:TemplateField>

然后,用户可以选择使用该日期值,或者通过从日期选择器中选择来更改它。

我尝试使用下面的代码捕获查询字符串值

Dim tb As TextBox = DirectCast(Gridview1.FindControl("txtDate"), TextBox)
tb.Text = Request.QueryString("d")

但我遇到了:

对象引用未设置为对象的实例。表示查询字符串的值为null。

任何想法我做错了什么?

1 个答案:

答案 0 :(得分:0)

您需要在gridveiw1

的RowDataBound事件上执行此操作
Protected Sub Gridview1_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles Gridview1.RowDataBound
    If e.Row.RowType = DataControlRowType.DataRow Then
        Dim tb As TextBox = DirectCast(e.Row.FindControl("txtDate"), TextBox)
        tb.Text = Request.QueryString("d")
    End If
End Sub