【发布时间】:2016-09-07 07:40:04
【问题描述】:
我有一个使用 Web 窗体用 C# .Net 编写的网站。我有一个包含三列的网格视图,第一列是“日期”字段。我在 gridview 中添加了一个空白行,并将 EditIndex 设置为该行。我希望用户能够单击该可编辑的日期单元格并显示日期选择器日历。
我的代码:
ASPX:
<asp:GridView ID="TaskGridViewAB" runat="server"
OnRowDataBound="GridView1_RowDataBound"
OnRowUpdating="TaskGridViewAB_RowUpdating">
</asp:GridView>
我从 Oracle 数据库中获取此网格的数据。 我在结果中添加了一个空行(这一切都有效):
sql = " - my SELECT statement - "
OracleCommand cmd = new OracleCommand(sql, Conn);
...
OracleDataAdapter oracleDataAdapter = new OracleDataAdapter(cmd);
//Add the blank row
DataRow NewRow = dt.NewRow();
dt.Rows.Add(NewRow);
//Fill the table with the SELECT results
oracleDataAdapter.Fill(dt);
我认为这条线设置不正确:
string js = "$(function() { $('#" + TaskGridViewAB.ClientID + "').datepicker(); });";
ScriptManager.RegisterStartupScript(Page, this.GetType(), Guid.NewGuid().ToString(), js, true);
我也试过了——这也没用:
string js = "$(function() { $('#" + e.Row.Cells[0].ClientID + "').datepicker(); });";
ScriptManager.RegisterStartupScript(Page, this.GetType(), Guid.NewGuid().ToString(), js, true);
注意:我可以替换上面的两行并将日期选择器分配给我拥有的文本框并且确实可以工作,但是我需要 gridview 中的日历,而不是文本框:
string js = "$(function() { $('#" + txtDate.ClientID + "').datepicker(); });";
ScriptManager.RegisterStartupScript(Page, this.GetType(), Guid.NewGuid().ToString(), js, true);
任何帮助将不胜感激。我意识到有关于类似情况的类似询问,但我一直无法让它发挥作用。 谢谢。
【问题讨论】:
-
如果您使用的是 Gridview RowEditing,则在您进入编辑模式之前无法找到该文本框,然后必须在 RowEditing 事件中找到它
标签: c# jquery asp.net gridview datepicker