2

[レコードの追加]ボタンをクリックすると、列の1つにデフォルト値が含まれるようにします。コードビハインドでこれを行うにはどうすればよいですか?これは動的な日付であり、常に変更できますか?

4

2 に答える 2

3

列が、でない場合は、次のように、列のプロパティGridTemplateColumnを使用してデフォルト値を指定できます。DefaultInsertValue

<telerik:GridBoundColumn DefaultInsertValue="12/21/2012" DataType="System.DateTime" DataField="Column1" UniqueName="Column1"></telerik:GridBoundColumn>

それ以外の場合はGridTemplateColumn、次のTelerikの記事をご覧ください。

InPlaceモードとEditFormsモードを使用した値の挿入

更新

ItemCommandコードビハインドのメソッドを使用して、デフォルトの列値を指定することもできます。

Protected Sub RadGrid1_ItemCommand(ByVal source As Object, ByVal e As Telerik.Web.UI.GridCommandEventArgs) Handles RadGrid1.ItemCommand
    If (e.CommandName = RadGrid.InitInsertCommandName) Then
        'cancel the default operation
        e.Canceled = True

        'Prepare an IDictionary with the predefined values
        Dim newValues As System.Collections.Specialized.ListDictionary = New System.Collections.Specialized.ListDictionary()
        newValues("Column1") = New DateTime(2013, 1, 22)
        newValues("Column2") = "hello"
        newValues("Column3") = Nothing

        'Insert the item and rebind
        e.Item.OwnerTableView.InsertItem(newValues)
    End If
End Sub
于 2013-01-18T20:33:32.900 に答える
0

ItemDataBoundイベントをインターセプトし、コンテンツをレンダリングして制御できます。

<telerik:RadGrid ID="RadGrid1" AutoGenerateColumns="false" 
    AllowSorting="True" runat="server" OnNeedDataSource="RadGrid1_NeedDataSource" 
    OnItemDataBound="RadGrid1_ItemDataBound">
    <MasterTableView DataKeyNames="ID" CommandItemDisplay="Top">
        <Columns>
            <telerik:GridBoundColumn DataField="ID" HeaderText="ID" 
                UniqueName="ID" />
            <telerik:GridBoundColumn DataField="Name" HeaderText="Name" 
                UniqueName="Name" />
        </Columns>
        <EditFormSettings ColumnNumber="1" EditFormType="Template">
            <FormTemplate>
                Name:<asp:TextBox runat="server" ID="NameTextBox"/>
            </FormTemplate>
        </EditFormSettings>
    </MasterTableView>
</telerik:RadGrid>

public class Customer
{
    public int ID { get; set; }
    public string Name { get; set; }
}

protected void RadGrid1_NeedDataSource(object sender, 
    GridNeedDataSourceEventArgs e)
{
    RadGrid1.DataSource = new List<Customer>
        {
            new Customer {ID = 1, Name = "John"},
            new Customer {ID = 2, Name = "Marry"},
            new Customer {ID = 3, Name = "Eric"}
        };
}

protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e)
{
    if (e.Item is GridEditFormItem && e.Item.IsInEditMode)
    {
        var item = e.Item as GridEditFormItem;

        var nameTextBox = item.FindControl("NameTextBox") as TextBox;

        // Insert mode
        if (e.Item.OwnerTableView.IsItemInserted)
        {
            nameTextBox.Text = "Please enter name";
        }
        else // Edit mode
        {

        }
    }

ここに画像の説明を入力してください

于 2013-02-04T18:36:16.593 に答える