-1

CalendarExtenderajaxに問題があります。テンプレートフィールドにカレンダーを含むグリッドビューがありますが、アプリケーションを実行すると、たとえば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 に答える