0

データを動的にバインドするグリッドビューがあります。SELECT および EDIT コマンドを備えています。

編集モードでは、すべてのフィールドが編集可能なテキストボックスに変わります。

私がやりたいことは、Ajax Calendar Extender をテキストボックスの 1 つに追加することです。

1 つのフィールドのためだけに TemplateField を作成するにはどうすればよいですか? それは可能ですか?すべてのフィールドをバインドし、SqlDataSource を介してデータを割り当てる場合、その方法を知っています。

テンプレートフィールドをグリッドビューに追加しようとしましたが、データが表示されません:

 <asp:GridView ID="gvCheckResults" runat="server" OnRowDataBound="gvCheckResults_RowDataBound"
OnRowEditing="gvCheckResults_RowEditing" OnRowUpdating="gvCheckResults_RowUpdating" OnRowCancelingEdit="gvCheckResults_RowCancelingEdit"
                     OnRowDeleting="gvCheckResults_RowDeleting">
                        <Columns>
                            <asp:TemplateField HeaderText="DateOfTest" SortExpression="DateOfTest">
                                <EditItemTemplate>
                                    <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("DateOfTest") %>'></asp:TextBox>
                                    <ajaxToolkit:CalendarExtender ID="test" runat="server"
                                    TargetControlID="TextBox1"
                                    CssClass="calendar"
                                    Format="dd/MM/yyyy">
                                    </ajaxToolkit:CalendarExtender>
                                </EditItemTemplate>
                                <ItemTemplate>
                                    <asp:Label ID="Label1" runat="server" Text='<%# Bind("DateOfTest") %>'></asp:Label>
                                </ItemTemplate>
                            </asp:TemplateField>
                        </Columns>
                    </asp:GridView>

データのバインド方法:

protected void TestDataBind()
    {
        string Name = txtCheckName.Text;
        if (string.IsNullOrEmpty(Name))
            Name = null;
        gvCheckResults.DataSource = dataContext.GetRecords(Name);
        gvCheckResults.DataBind();
    }
4

0 に答える 0