我有一个名为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。
任何想法我做错了什么?
答案 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