将行添加到可编辑网格视图后,日期选择器不出现

2023-12-06

我有一个可编辑的 Gridview,其列如下:

    <asp:TemplateField HeaderText="Date" >
        <ItemTemplate>
            <asp:TextBox ID="TextBox2" runat="server" Width="160" CssClass="DateTimePicker" ></asp:TextBox>
        </ItemTemplate>
    </asp:TemplateField>

    <asp:TemplateField HeaderText="Amt $">
        <ItemTemplate>
             <asp:TextBox ID="TextBox3" runat="server" Width="160"></asp:TextBox>
        </ItemTemplate>
        <FooterStyle HorizontalAlign="Right" />
        <FooterTemplate>
         <asp:Button ID="ButtonAdd" runat="server" Text="Add Stage" onclick="ButtonAdd_Click" />
        </FooterTemplate>
    </asp:TemplateField>
    </Columns>

正如您所看到的,该网格视图作为底部的按钮,允许用户向网格视图添加行。

我想为我的日期列弹出一个日历,所以我使用了 jQuery (基思·伍德) 并像这样调用 JS 函数:

    $(function () {

                $('.DateTimePicker').datepick({ dateFormat: 'dd MM yyyy' });
            });

在我的网格视图中,第一次单击“日期”文本框(第一行)时,会弹出日历。但是,一旦我向网格视图添加一行,日历功能就不再出现。

这是我从代码隐藏添加新行到 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();
    }

任何想法为什么我的日历在我向网格视图添加新行后不会弹出?

Cheers!


发生这种情况的唯一情况是当您使用 UpdatePanel 时。

现在,当您使用 UpdatePanel 时,每个 UpdatePanel 上的 Dom 都会发生变化,并且 javascript 需要重新初始化。现在,在您的情况下,您添加新行,并进行 ajax 更新,因此您需要重新初始化日期选择器。

这可以通过 UpdatePanel 附带的函数来完成,如下所示:

<script type="text/javascript"> 
   // when dom is ready we initialize the UpdatePanel requests
   $(document).ready(function () {
       var prm = Sys.WebForms.PageRequestManager.getInstance();    
       prm.add_initializeRequest(InitializeRequest);
       prm.add_endRequest(EndRequest);

       // Place here the first init of the DatePicker           
       $('.DateTimePicker').datepick({ dateFormat: 'dd MM yyyy' });
    });        

    function InitializeRequest(sender, args) {
       // make unbind before update the dom, to avoid memory leaks.
       $('.DateTimePicker').unbind();
    }

    function EndRequest(sender, args) {
       // after update occur on UpdatePanel re-init the DatePicker
       $('.DateTimePicker').datepick({ dateFormat: 'dd MM yyyy' });
    }
</script>

相似的:Gridview Jquery DatePicker 中的 Asp.Net UpdatePanel
用于动态创建控件的日期选择器

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将行添加到可编辑网格视图后,日期选择器不出现 的相关文章

随机推荐

  • 如何使用 VLC 流式传输图像/文件?

    所以我知道有很多 libVLC dll 的包装器 但我只是不知道谁准备好做我需要做的事情 我需要的很简单 在我的 C 程序中 我创建了一些位图 每秒一次或两次 我现在想使用 VLC 将位图作为视频 以 VLC 可以提供的某种格式 实时流式传
  • 在 malloc 内存上使用 sizeof() [重复]

    这个问题在这里已经有答案了 可能的重复 新手关于malloc和sizeof的问题 我正在尝试将字符串读入程序中 当我注意到字符串有时会被损坏时 我尝试了以下代码 void mallocated malloc 100 printf sizeo
  • 如何将拒绝的行重定向到另一个文件?

    这是我的来源csv file col1 col2 col3 col4 col5 col6 1 A AA X Y H 2 B CC D reject this row because CC it should be in col3 3 E F
  • Laravel 从 base64 返回图像预览

    我有 Base64 图像 我想返回图像预览而不是 Base64 代码 I tried return response base64 decode results gt getBase64Image 200 Content Type gt i
  • Bokeh 跳过分类数据的刻度标签

    我使用的是 Bokeh 版本 0 12 13 我有混合的数字和分类数据 我在 x 轴上只有一个分类数据 其余的都是数字 我将所有内容转换为分类数据来进行绘图 可能不是实现我的目标的最简单方法 现在我的 x 轴刻度标签比我需要的要密集得多 我
  • 如何在mysql中将单行拆分为多列

    简单问一下 mysql中有没有可用的函数将单行元素拆分为多列 我有一个带有字段的表行 user id user name user location 在此用户可以添加多个位置 我使用 php 将位置内爆并将其作为单行存储在表中 当我在网格视
  • Cosmos Mongo API“In”数组表达式问题

    IN 表达式有问题吗 我们遇到的问题是 即使存在 它也找不到我们要求的结果 SerialNumber V8073023 t DeviceEventDataEvent EventType NumberInt 4 isDeleted in fa
  • C++ vector > 在开始处保留大小

    在 C 中我有 vector
  • 检测未初始化的数组

    在下面的程序中 两个例程set int array and set real array为虚拟数组定义一些值 但假设初始化a and r 第 1 行和第 2 行 无意中丢失了 即 这两行在正确的程序中都应该取消注释 我的问题是如何使用某些编
  • Symfony2在全局文件夹下命令行生成树枝模板

    我正在使用 Symfony2 8 每当我使用命令行生成控制器 and 树枝模板模板是在下面创建的 MyBundle Resources views home home html twig 我想遵循以下建议的最佳实践symfony 文档并将其
  • 响应式箭头面包屑导航[重复]

    这个问题在这里已经有答案了 所以我有一个面包屑导航 箭头间隔开 棘手的是我需要它具有响应能力 我想我在使用 vh 和 vw 时已经很混乱了 但我遇到的问题是白色间隔符没有像前面的箭头那样响应 有什么建议么 或者有更好的方法来处理吗 我尝试了
  • Jexcel公式计算错误

    我创建了一个工作表 out xls其中单元格 D6 D5 2 且 D5 设置为 1 我的问题是 当我将值插入 jxl 中的 D5 时 D6 永远不会计算 当我在 Excel 中将 1 插入到 D5 中时 D6 只是保留它最初计算出的值 注意
  • python:转换损坏的xls文件

    我从 SAP 应用程序下载了一些销售数据集 SAP 已自动将数据转换为 XLS 文件 每当我打开它时使用Pandas库我收到以下错误 XLRDError Unsupported format or corrupt file Expected
  • 临时文件目录“/var/www/html/activate/../temp/”在实时服务器上不可写

    我在生成 PDF 文件时在实时服务器上收到此错误 它在我的本地系统上运行良好 我正在使用 Laravel 和这个 mPdf 包来生成 PDF PDF包 我如何向该 Temp 文件夹授予可写权限 我在代码中找不到它 并且在服务器上它也不位于上
  • Apache 2.4 中所有大写的 HTTP 标头都去掉了下划线

    我有一个应用程序依赖于发送全部大写加下划线的 HTTP 标头以及请求 从 开始阿帕奇2 4 包含无效字符 包括下划线 的标题现在 默默地落下 这一页建议您可以更改一些设置 以允许不删除旧的 HTTP 标头 即 如果它们在 CURL 中设置
  • 在光标位置插入笑脸

    我正在制作一个项目 用户可以单击表情符号并将它们插入到 contenteditable div 中 我想要三个 div 无论我在什么 div 中 笑脸都应该插入该 div 中 另外 这里的问题是表情符号只插入在 div 的末尾 我希望笑脸只
  • Javascript:如何获取输入文本区域的最后两个字符?

    获取文本区域框中输入的最后两个字符的最佳方法是什么 我需要输入最后 2 个字符 而不是整个字符串的最后两个字符 感谢您的帮助 你需要抓住keypress文本区域上的事件 然后保留按下的按键的日志 请注意 这将捕获箭头键 Shift Alt
  • 比较/过滤两个数组,其中数组 B 包含 A 的任何子字符串

    好的 这是我部分工作的内容 忽略区分大小写 比较以下内容 arrayA apples Oranges salt Cracked Black Pepper arrayB salt pepper orange 它 部分 与以下内容一起工作 fi
  • iPhone 相机视图上的实时水印图像

    提前特别感谢 我是iphone软件开发的初学者 只是寻找如何使用可可以编程方式将水印图像实时添加到相机视图中 不是一步一步地寻找 虽然那会很棒 而是或多或少地寻找我应该从哪里开始学习如何 是否有为此开发的框架 想要一些使用 XCode 框架
  • 将行添加到可编辑网格视图后,日期选择器不出现

    我有一个可编辑的 Gridview 其列如下