1

それが私のコードです

<EditFormSettings PopUpSettings-Width="500" EditFormType="Template">
 <FormTemplate>
 <asp:DropDownList ID="Status" DataSourceID="TerminalStatusDTS" DataValueField="STATUS_ID" DataTextField="STATUS_NAME"  runat="server"  Width="175px"  ></asp:DropDownList>
 </FormTemplate>

Status私の質問は、e.commandName=RadGrid.InitInsertCommandName onItemCommandイベントで非表示にするにはどうすればよいですか?

4

1 に答える 1

1

EditFormは、RadGridの行ごとに異なります。まず、編集中の行の行インデックスを取得し、編集フォームへの参照を取得する必要があります。次に、編集フォーム内にControlを見つけることができます。サンプルコードは次のようになります。

if (e.CommandName == RadGrid.InitInsertCommandName)
{
    RadGrid radgrid = (RadGrid)sender;
    int rowindex = e.Item.RowIndex;
    GridEditFormItem item = radgrid.MasterTableView.GetItems(GridItemType.EditFormItem)[rowindex] as GridEditFormItem;
    DropDownList statusDropDownList = (DropDownList)item.FindControl("Status");
    statusDropDownList.Visible = false;
}

ただし、これが正確に必要なものではない可能性があります。つまり、ページにItemCommandのポストバックがある場合、ステータスドロップダウンリストが表示され、[挿入]コマンドをクリックしたときにコントロールを非表示にする必要があると思います(更新と挿入での動作が異なります)。

したがって、DropDownListにアクセスして、ItemCreatedイベントまたはItemDataBoundイベントで非表示にすることができます。

例えば:

void rad_ItemDataBound(object sender, GridItemEventArgs e)
{
    if (e.Item is GridEditFormInsertItem)
    {
        DropDownList statusDropDownList = (DropDownList)e.Item.FindControl("Status");
        statusDropDownList.Visible = false;
    }
}
于 2012-09-23T15:07:00.223 に答える