Telerik:向网格添加编辑功能?

时间:2016-07-13 16:20:57

标签: c# asp.net telerik

好的......我非常生疏,所以请善待;)

我正在使用网格构建Web表单应用程序。我正确地填充了我的数据网格(考虑到这是一个粗略的草稿),现在我正在尝试添加编辑功能。我创建了一个组合框,当我选择"编辑"时,它会正确显示。这就是我已经设法通过Telerik的教程。我想用组合框中的选定项更新行的状态字段。我不知道接下来要做什么......令人遗憾的是我在很久以前就做过这件事:(

我的代码如下......我将非常感谢任何朝着正确方向的推动。

 <telerik:RadGrid ID="RadGrid1" runat="server" AutoGenerateColumns="False" AllowAutomaticUpdates="True"
        CellSpacing="0" GridLines="None" AllowPaging="True">
<MasterTableView>

<RowIndicatorColumn Visible="True" FilterControlAltText="Filter RowIndicator column">
<HeaderStyle Width="20px"></HeaderStyle>
</RowIndicatorColumn>

<ExpandCollapseColumn Visible="True" FilterControlAltText="Filter ExpandColumn column">
<HeaderStyle Width="20px"></HeaderStyle>
</ExpandCollapseColumn>

    <Columns>
        <telerik:GridBoundColumn FilterControlAltText="Filter column column" 
            UniqueName="column" DataType="System.String" DataField="Make">
        </telerik:GridBoundColumn>
        <telerik:GridBoundColumn FilterControlAltText="Filter column1 column" 
            UniqueName="column1" DataType="System.String" DataField="Model">
        </telerik:GridBoundColumn>
        <telerik:GridBoundColumn FilterControlAltText="Filter column2 column" 
            UniqueName="column2" DataType="System.String" DataField="Year">
        </telerik:GridBoundColumn>
          <telerik:GridBoundColumn FilterControlAltText="Filter column2 column" 
            UniqueName="column3" DataType="System.String" DataField="Status" >
     </telerik:GridBoundColumn>
        <telerik:GridTemplateColumn HeaderText="Category" ItemStyle-Width="240px">

                        <EditItemTemplate>
                            <telerik:RadComboBox RenderMode="Lightweight" runat="server" ID="RadComboBox2" DataTextField="Status" 
                             DataSourceID="LinqDataSource1" DataValueField="ID" >                           
                            </telerik:RadComboBox>
                        </EditItemTemplate>

<ItemStyle Width="240px"></ItemStyle>

              </telerik:GridTemplateColumn> 

                    <telerik:GridEditCommandColumn FooterText="EditCommand footer" UniqueName="EditCommandColumn"

                        HeaderText="Edit" HeaderStyle-Width="100px" UpdateText="Update">

<HeaderStyle Width="100px"></HeaderStyle>

                    </telerik:GridEditCommandColumn>

    </Columns>

<EditFormSettings>
<EditColumn FilterControlAltText="Filter EditCommandColumn column"></EditColumn>
</EditFormSettings>
</MasterTableView>

<FilterMenu EnableImageSprites="False"></FilterMenu>
    </telerik:RadGrid>

提前感谢您提供的任何帮助!

1 个答案:

答案 0 :(得分:0)

如果您希望立即更新,可以使用ComboBox的SelectedIndexChanged事件。只需确保将属性AutoPostBack="true"添加到ComboBox

即可
protected void RadComboBox2_SelectedIndexChanged(object sender, EventArgs e)
{
    // Get the RadComboBox
    var comboBox= (RadComboBox)sender;

    // Get the item from the grid (RadComboBox parent)
    GridDataItem item = (GridDataItem)comboBox.NamingContainer;

    item["column3"].text = comboBox.SelectedText; // can't remember the exact syntax on this

}

或者,您可以使用点击更新按钮时触发的RadGrid_ItemCommand事件。

protected void RadGrid1_ItemCommand(object sender, GridCommandEventArgs e)
{
   if (e.CommandName == RadGrid.EditCommandName)
   {
       // For Normal mode
       GridDataItem item = e.Item as GridDataItem;

       RadComboBox comboBox = item.FindControl("RadComboBox2") as RadComboBox;

       item["column3"].text = comboBox.SelectedText; // can't remember the exact syntax on this
   }
}

希望这有帮助。