在 BoundField DataField 上使用日期选择器

问题描述 投票:0回答:1

有没有办法将日期选择器添加到 GridView 中的 BoundField? 我有一个非常简单的 Gridview,它允许用户从数据库表中插入、编辑/更新和删除供应商。 我能够使用我发现的 jQuery 脚本将日期选择器添加到不是 BoundField 的字段,但由于我无法指定 Id,所以在 BoundField 上获取它时遇到问题。 这是函数:

<script type="text/javascript" src="https://code.jquery.com/ui/1.13.2/jquery-ui.js"></script>
<script type="text/javascript">
    $(function () {
        $("[id*=TextBox2]").datepicker({
            showOn: 'button',
            buttonImageOnly: true,
            buttonImage: 'images/calendar.png'
        });
    });
    $(function () {
        $("[id*=effDt]").datepicker({
            showOn: 'button',
            buttonImageOnly: true,
            buttonImage: 'images/calendar.png'
        });
    });
</script>

这是日期选择器工作的 ASP 代码:

                   <td style="font-style: italic;">
                        <asp:RequiredFieldValidator ID="RequiredFieldValidator1"
                            ControlToValidate="TextBox2"
                            Display="Static"
                            ErrorMessage="Effective Date Is Required"
                            runat="server"
                            ValidationGroup="addVendor" /></td>

这里我也想在“effDt”上使用日期选择器,但我不知道如何使用:

    <asp:GridView ID="VendorView" runat="server" DataSourceID="VendorSrc" AutoGenerateColumns="false" AllowPaging="true" AllowSorting="true" HorizontalAlign="Center"
                PageSize="10" BorderColor="#921E33" BorderStyle="Solid" HeaderStyle-BackColor="#921E33" HeaderStyle-ForeColor="White" CellPadding="10" CellSpacing="0" AlternatingRowStyle-BorderStyle="Solid" AlternatingRowStyle-BackColor="White" AlternatingRowStyle-ForeColor="#921E33" Font-Size="Small" RowStyle-BackColor="#63666A" RowStyle-BorderStyle="Solid" RowStyle-BorderColor="Gray" RowStyle-ForeColor="White" SelectedRowStyle-BackColor="#F3D03E" SelectedRowStyle-ForeColor="Black" PagerStyle-BackColor="#921E33" PagerStyle-ForeColor="White" PagerSettings-Mode="NextPreviousFirstLast" PagerSettings-NextPageText="Next Page" PagerStyle-HorizontalAlign="Center" PagerStyle-Width="50%" PagerStyle-CssClass="cssPager" EmptyDataText="No Records Found" AutoGenerateSelectButton="false" PagerSettings-PageButtonCount="10" PagerSettings-PreviousPageText="Previous Page" PagerSettings-FirstPageText="First Page" PagerSettings-LastPageText="Last Page" Width="100%" EmptyDataRowStyle-ForeColor="White" DataKeyNames="vendorId" OnRowDataBound="VendorView_OnRowDataBound">
                <Columns>
                    <asp:BoundField DataField="vendorId" HeaderText="ID" InsertVisible="false" ReadOnly="true" SortExpression="ID" />
                    <asp:BoundField DataField="vendorName" HeaderText="Vendor" SortExpression="Vendor" />
                    <asp:BoundField DataField="effDt" HeaderText="Effective Date" SortExpression="Effective Date" />
                    <asp:BoundField DataField="changeDt" HeaderText="Last Updated" ReadOnly="true" SortExpression="Last Updated" />
                    <asp:CommandField ButtonType="Link" ShowEditButton="true" ShowDeleteButton="true" ItemStyle-Width="100" />
                </Columns>
            </asp:GridView>

我需要改为 ItemTemplate 吗? 或者有没有更简单的方法来调整功能(或者可能是更好的使用功能)?

谢谢!

asp.net gridview jquery-ui-datepicker
1个回答
0
投票

嗯,asp.net 文本框有一个相当不错的内置日期选择器,我建议这样使用。

因此,只需放入标准的 asp.net 文本框,但将模式设置为日期即可。

因此,说出这个标记:

        <asp:TextBox ID="TextBox1" runat="server"
           TextMode="Date" >
        </asp:TextBox>

结果是这样的:

enter image description here

注意它如何自动在日期选择器旁边添加一个日期“图标”。

所以,是的,使用 TemplateField,然后简单地放入标准文本框。因此,当已经内置了一个良好的工作日期选择器时,我认为采用 jQuery.UI 日期选择器没有什么好处,也没有理由。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.