我的问题似乎有点难以理解但很简单,我确信解决方案也很简单。
我有一个可以编辑和更新的Gridview。 我们都知道,当我们点击编辑时,如果列被设置为ReadOnly =“True”,则会出现默认的文本框控件......
我可以通过点击Gridview的编辑按钮动态创建该文本框中的值,这一切都很好......
我的问题是:我想将javascript代码添加到在gridview中单击编辑按钮时创建的动态文本框。
这是单击文本框时Datepicker显示的javascript代码:
<head runat="server">
<link rel="Stylesheet" type="text/css" href="css/jquery.datepick.css" />
<script type="text/javascript" src="js/jquery.datepick.js"></script>
<script type="text/javascript" language="javascript">
$(function () {
$('#Textbox_Name').datepick({ dateFormat: 'dd/mm/yyyy' });
});
</script>
</head>
现在,我不想首先将文本框名称放在该代码上,而是想知道我的gridview编辑文本框的名称是否动态创建,然后在该文本框上显示日期选择器
答案 0 :(得分:1)
处理RowCreated事件:
protected void grid_RowCreated(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowState == DataControlRowState.Edit)
{
var textBox = e.Row.FindControl("myTextBox") as TextBox;
ClientScript.RegisterStartupScript(this.GetType(), "datepick",
"$(function () { $('#" + textBox.ClientID + "').datepick({ dateFormat: 'dd/mm/yyyy' }); })", true);
}
}
答案 1 :(得分:1)
这里简单的方法是在编辑器中添加一个css类名,然后将datepick应用于所有具有此类的编辑器
<script type="text/javascript" language="javascript">
$(function () {
$('.className').datepick({ dateFormat: 'dd/mm/yyyy' });
});
</script>
另请参阅此问题的解决方案,包括更新面板:Asp.Net UpdatePanel in Gridview Jquery DatePicker
答案 2 :(得分:0)
我得到了这样的工作:
(RowDataBound事件)
if (e.Row.RowType == DataControlRowType.DataRow)
{
TextBox tbOne = e.Row.FindControl("txtMyTextBox") as TextBox;
if (tbOne != null)
{
string js = "$(function() { $('#" + tbOne.ClientID + "').datepicker(); });";
ClientScript.RegisterStartupScript(this.GetType(), "DatePickJS_" + Guid.NewGuid().ToString("N"), js, true);
}
}