1

Telerik radgrid に問題があります。

  • 私は 17 列の radgrid を持っていますが、編集可能な列は 6 つだけです (その他は ReadOnly="true" です)

  • 1 つのボタンが変更を DB に保存しようとするメソッドを起動します (radgrid イベントではないため、グリッド引数はありません)

  • radgrid.edititems (6 列) から値を取得できますが、編集できない他の 11 列を見つける場所がわかりません...

これが私のコードです

protected void HiddenButton_Click(object sender, EventArgs e)
{
    try
    {
        DataTable dt = Oggetti.DT_RDO();

        foreach (GridEditableItem editedItem in dgRDO.EditItems)
        {
            Hashtable newValues = new Hashtable();
            //The GridTableView will fill the values from all editable columns in the hash
            editedItem.OwnerTableView.ExtractValuesFromItem(newValues, editedItem);

newValues に値を編集しました。ここで他の値を取得できますか???

4

2 に答える 2

3

以下のコード スニペットを試してみてください。

.ASPX

<Columns>
    <telerik:GridBoundColumn DataField="ID" UniqueName="ID" HeaderText="ID">
    </telerik:GridBoundColumn>
    <telerik:GridBoundColumn DataField="Name" UniqueName="Name" HeaderText="Name">
    </telerik:GridBoundColumn>
    <telerik:GridEditCommandColumn>
    </telerik:GridEditCommandColumn>
</Columns>

.ASPX.CS

protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e)
{
    if (e.Item is GridEditableItem && e.Item.IsInEditMode)
    {
        if (e.Item is GridEditFormInsertItem)
        {
            // insert
        }
        else
        {
            // Edit
            // Please add below code in your page
            GridEditableItem item = e.Item as GridEditableItem;
            item["Name"].Controls[0].Visible = false;
            Label l1 = new Label();
            l1.ID = "l1";
            l1.Text = (item["Name"].Controls[0] as TextBox).Text;
            item["Name"].Controls.Add(l1);
        }
    }
}

注 : ExtractValuesFromItem メソッドで読み取り専用列の値を取得することはできません。列を読み取り専用に設定すると、編集モードでレンダリングされません。そのため、この列にアクセスできません。

上記のコードを追加すると、ExtractValuesFromItem メソッドで両方の列の値を表示/取得できます。

詳細については、以下のリンクを確認してください。

http://www.telerik.com/community/forums/aspnet-ajax/grid/reading-read-only-column-in-ragdrid-update.aspx

于 2013-04-17T06:01:32.807 に答える
1

GridBoundColumn から ReadOnly 属性を削除し、代わりにデータグリッドの ItemDataBound イベントで編集可能なテキスト ボックスを無効にすることで、これを解決しました。

ASPX

<telerik:GridBoundColumn DataField="BillingRate" HeaderText="Rate" />

ASPX.VB

Protected Sub grdWorkServices_ItemDataBound(sender As Object, e As GridItemEventArgs) Handles grdWorkServices.ItemDataBound
        If TypeOf e.Item Is GridDataItem AndAlso e.Item.IsInEditMode Then
            Dim l_oGridDataItem As GridDataItem = DirectCast(e.Item, GridDataItem)

            Dim l_oTextBox As TextBox = DirectCast(l_oGridDataItem("BillingRate").Controls(0), TextBox)
            l_oTextBox.Enabled = False
        End If
End Sub
于 2014-04-27T20:13:09.410 に答える