-1

我对 CalendarExtender ajax 有疑问。我在模板字段中有一个带有日历的网格视图,但是当我运行应用程序时,例如我有 5 个数据行,我的日历都在第一行。有人可以解释我为什么吗?有我的代码:

 <asp:GridView ID="gvFeatureCustomer" runat="server" DataKeyNames="Id" AutoGenerateColumns="False"
            ClientIDRowSuffix="Id" OnRowDataBound="dtgdResult_RowDataBound" ClientIDMode="Static"
            ShowHeader="false" CssClass="datagrid" Style="width: 100%;" OnRowCommand="gvFeatureCustomer_RowCommand"
            OnRowDeleting="gvFeatureCustomer_RowDeleting">
            <Columns>
                <asp:TemplateField HeaderText="Nome" FooterText="Nome" SortExpression="Name">
                    <ItemTemplate>
                        <asp:DropDownList ID="ddlName" ClientIDMode="Predictable" runat="server" DataValueField="id"
                            DataTextField="Name" Style="width: 100%;">
                        </asp:DropDownList>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="Valore" FooterText="Valore" SortExpression="Value">
                    <ItemTemplate>
                        <asp:TextBox ID="txtValue" AutoPostBack="true" runat="server" CssClass="auto-feature"
                            OnTextChanged="txtValue_TextChanged" Style="width: 100%"></asp:TextBox>
                        <ajaxToolkit:CalendarExtender ID="CalendarExtender99" ClientIDMode="AutoID" Format="dd/MM/yyyy" TargetControlID="txtValue" runat="server">
                        </ajaxToolkit:CalendarExtender>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:CommandField HeaderText="Delete" FooterText="Delete" Visible="true" HeaderStyle-Width="25"
                    ItemStyle-HorizontalAlign="Center" DeleteImageUrl="~/images/delete2.png" ButtonType="Image"
                    ShowDeleteButton="true" />

            </Columns>
        </asp:GridView>

谢谢!

4

2 回答 2

1

你应该删除

ClientIDMode="Static"

您定义的属性GridView,因为如果您使用它,所有TextBox控件都将具有相同的 ID,“txtValue”。控件将CalendarExtender找到第一个值(位于第一行)并将全部映射到它。

如果您想改进控件 ID 分配的模式,这里有更多关于该主题的信息。

于 2013-01-14T14:27:44.393 回答
0

添加 ClientIDMode="AutoID"到文本框。Asp.net 将弄清楚该怎么做。

于 2013-01-14T14:42:08.690 回答