【问题标题】:Button inside GridView devExpressGridView devExpress 内的按钮
【发布时间】:2016-01-05 01:03:47
【问题描述】:

我有一个 GridView:

 @Html.DevExpress().GridView(settings =>
       {
           settings.Name = "GridView";

           settings.KeyFieldName = "Id";
           settings.SettingsBehavior.AllowSelectByRowClick = true;
           settings.SettingsBehavior.AllowFocusedRow = true;

           settings.SettingsBehavior.AllowSelectSingleRowOnly = true;

           settings.ClientSideEvents.RowClick = "function(s, e){rowSelected(s, e)}";

           settings.Columns.Add("CodeClient");
           settings.Columns.Add("Nom");
           settings.Columns.Add("Prenom");
           settings.Columns.Add("DateNaissance");

       }).Bind(Model).GetHtml()

我想要这个 GridView 中的按钮。 有人可以帮我解决这个问题吗?

【问题讨论】:

  • 您将来会需要Editing 模式还是只需要简单的gridview 来显示数据??

标签: c# asp.net gridview


【解决方案1】:

如果您想在Gridview 中添加button。您可以添加custom columnbutton,如下所示:

C# 代码

settings.Columns.Add(column => {
            column.FieldName = "Unbound";
            column.Caption = "Button";
            column.UnboundType = DevExpress.Data.UnboundColumnType.String;
            column.EditFormSettings.Visible = DevExpress.Utils.DefaultBoolean.False;
            column.Width = Unit.Percentage(10);
            column.SetDataItemTemplateContent((c) => {
                htmlHelper.DevExpress().Button(b => {
                    b.Name = "Button" + c.KeyValue;
                    b.Text = "Test";
                    b.ClientSideEvents.Click = string.Format(@"function(s, e) {{ alert({0}); }}", c.KeyValue);
                }).GetHtml();
            });
        });

有关更多信息,您可以通过以下链接:-

Gridview 内的简单按钮:https://www.devexpress.com/Support/Center/Question/Details/T161954

带有编辑模式的Gridview按钮:-

https://www.devexpress.com/Support/Center/Question/Details/Q499774

Editing mode 的主要内容将是它的设置

settings.CommandColumn.Visible = true;
settings.CommandColumn.NewButton.Visible = true;
settings.CommandColumn.DeleteButton.Visible = true;
settings.CommandColumn.EditButton.Visible = true;

希望对您有所帮助。

【讨论】:

  • 我想如何使任何按钮的动作删除、添加和更新
  • 你可以做类似settingsBtn.Add, .....,的事情,通过我提供给你的链接,它有所有这些操作的详细信息
  • 我看到了他,但我没有对控制器执行任何操作我想在同一个视图 ajax 中执行方法 javascript
  • 这似乎与您的问题不同。我想在 gridview 中添加一个按钮是你的问题。现在您应该为 executing method via javascript 发布一个新问题,该问题需要详细说明您到底想要什么、您尝试了什么以及卡在哪里。也可以看看here供参考
【解决方案2】:

您可以使用类似这样的方式为新按钮添加功能(这是我的一个应用程序代码中的示例)。它有 3 个不同的自定义按钮:

//html
<dx:ASPxGridView ID="grvResultados" runat="server" EnableCallBacks="false" EnableTheming="True"
                                                OnBeforeColumnSortingGrouping="grvResultados_BeforeColumnSortingGrouping" 
                                                OnPageIndexChanged="grvResultados_PageIndexChanged"
                                                 OnCustomColumnDisplayText="grvResultados_CustomColumnDisplayText"
                                                Styles-Cell-Wrap="False" Theme="MetropolisBlue" Width="100%">
                                                <SettingsBehavior ColumnResizeMode="Control" />
                                                <SettingsPager Mode="ShowPager" NumericButtonCount="10" PageSize="20" PageSizeItemSettings-Visible="true"
                                                    Visible="true">
                                                    <PageSizeItemSettings Visible="True">
                                                    </PageSizeItemSettings>
                                                </SettingsPager>
                                                <Settings ShowHeaderFilterButton="true" ShowFooter="True" ShowFilterRow="True" ShowFilterRowMenu="True"
                                                    ShowHorizontalScrollBar="false" EnableFilterControlPopupMenuScrolling="true" ShowFilterBar="Auto"
                                                    VerticalScrollBarMode="Auto" VerticalScrollBarStyle="Standard" />
                                                <Styles>
                                                    <Cell Wrap="False">
                                                    </Cell>
                                                </Styles>
                                            </dx:ASPxGridView>

这是代码.cs

//Code
 protected void grvResultados_CustomColumnDisplayText(object sender, DevExpress.Web.ASPxGridView.ASPxGridViewColumnDisplayTextEventArgs e)
    {
        if (e.Column.FieldName.Contains("FECHA"))
        {
            if (!String.IsNullOrEmpty(e.Value.ToString()))
            {
                try
                {
                    e.DisplayText = ((DateTime)e.Value).ToString("dd/MM/yyyy HH:mm:ss");
                }
                catch
                {
                    e.DisplayText = e.Value.ToString();
                }
            }
            e.Column.UnboundType = DevExpress.Data.UnboundColumnType.DateTime;
        }
    }
 protected void grvResultados_BeforeColumnSortingGrouping(object sender, DevExpress.Web.ASPxGridView.ASPxGridViewBeforeColumnGroupingSortingEventArgs e)
    {
        try
        {
            MuestraResultados(0);
        }
        catch (Exception ex)
        {
            mpPage.MuestraPopUp(GenerarError(this.Page.ToString(), ex.Message, ex.StackTrace.ToString()), "ERROR");
        }
    }

    protected void grvResultados_PageIndexChanged(object sender, EventArgs e)
    {
        try
        {
            MuestraResultados(grvResultados.PageIndex);
        }
        catch (Exception ex)
        {
            mpPage.MuestraPopUp(GenerarError(this.Page.ToString(), ex.Message, ex.StackTrace.ToString()), "ERROR");
        }
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-02
    • 1970-01-01
    • 2014-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多