将行添加到可编辑网格视图后,不显示Datepicker
我有一个可编辑的Gridview,其列如下:
如您所见,此gridview作为底部的按钮,允许用户向gridview添加行。
我想为我的Date列弹出一个日历,所以我使用jQuery( Keith Wood )并调用JS函数,如下所示:
$(function () { $('.DateTimePicker').datepick({ dateFormat: 'dd MM yyyy' }); });
在我的gridview中,第一次单击Date文本框(第一行)时,会弹出日历。 但是,一旦我向gridview添加一行,日历function就不再出现。
这是我从代码隐藏向gridview添加新行的方式:
private void AddNewRowToGrid() { int rowIndex = 0; if (ViewState["CurrentTable"] != null) { DataTable dtCurrentTable = (DataTable)ViewState["CurrentTable"]; DataRow drCurrentRow = null; if (dtCurrentTable.Rows.Count > 0) { for (int i = 1; i <= dtCurrentTable.Rows.Count; i++) { //extract the TextBox values TextBox box1 = (TextBox)Gridview1.Rows[rowIndex].Cells[1].FindControl("TextBox1"); TextBox box2 = (TextBox)Gridview1.Rows[rowIndex].Cells[2].FindControl("TextBox2"); TextBox box3 = (TextBox)Gridview1.Rows[rowIndex].Cells[3].FindControl("TextBox3"); drCurrentRow = dtCurrentTable.NewRow(); drCurrentRow["RowNumber"] = i + 1; dtCurrentTable.Rows[i - 1]["Column1"] = box1.Text; dtCurrentTable.Rows[i - 1]["Column2"] = box2.Text; dtCurrentTable.Rows[i - 1]["Column3"] = box3.Text; rowIndex++; } dtCurrentTable.Rows.Add(drCurrentRow); ViewState["CurrentTable"] = dtCurrentTable; Gridview1.DataSource = dtCurrentTable; Gridview1.DataBind(); } } else { Response.Write("ViewState is null"); } //Set Previous Data on Postbacks SetPreviousData(); }
在向gridviews添加新行后,为什么我的日历不会弹出的任何想法?
干杯!
发生这种情况的唯一情况是使用UpdatePanel时。
现在,当您使用UpdatePanel时,在每个UpdatePanel上,Dom都会发生变化,而javascript需要重新初始化。 现在,在您的情况下,您添加新行,并进行ajax更新,因此您需要重新初始化日期选择器。
这可以通过UpdatePanel附带的function来完成:
类似: Gridview Jquery DatePicker中的Asp.Net UpdatePanel
Datepicker用于动态创建的控件
$(function(){
$('.DateTimePicker').datepick({ dateFormat: 'dd MM yyyy' }); });
这意味着它会打一次。 尝试使用forEach函数像这样:
$(function () { $('.DateTimePicker').each(function () { $(this).datepick({ dateFormat: 'dd MM yyyy' }); }); //$('.DateTimePicker').datepick({ dateFormat: 'dd MM yyyy' }); });
- ASP.NET自定义validation器+ WebMethod + jQuery
- 将数组的C#字符串或字符串分配给javascript数组
- 关于从静态方法asp.net 4.0访问页面控制的问题
- 为什么Asp.Net MVC 5将@ Scripts.Render(“〜/ bundles / jquery”)放在_Layout.cshtml的底部?
- 如何使用jQuery解决动态加载页面中的重复对象?
- 如何在asp.net中使用jquery ajax从数据库加载图像
- 当第一个下拉列表中的项目发生更改时,下拉列表不会填充在“modal dialog”中
- 在asp.net中使用ajax
- 在asp.net MVC中提交部分视图时,如何显示加载微调器?