【发布时间】:2016-11-17 03:56:59
【问题描述】:
在 DevExpress ASPxGridView 中,我需要根据底层记录的某些属性在网格的每一行中显示/隐藏一个按钮。 对于 DevExpress ASPxGridView,我找不到类似于 asp.net Gridview 中存在的 GridView.RowDataBound 事件的东西,这可以帮助我解决问题。
谢谢
【问题讨论】:
标签: button devexpress show-hide aspxgridview
在 DevExpress ASPxGridView 中,我需要根据底层记录的某些属性在网格的每一行中显示/隐藏一个按钮。 对于 DevExpress ASPxGridView,我找不到类似于 asp.net Gridview 中存在的 GridView.RowDataBound 事件的东西,这可以帮助我解决问题。
谢谢
【问题讨论】:
标签: button devexpress show-hide aspxgridview
在搜索更多之后,我发现 gridview.rowdatabound 的等效事件在 ASPxGridView 中是 HtmlRowCreated
但根据您的要求,您可以尝试 HtmlDataCellPrepared,这对于扫描 aspxgridview 的每个单元格很有用,而且我们也可以从其他列访问数据值,这里我附上描述这些事情的示例代码。 p>
ASPX 页面
<dx:ASPxGridView ID="ASPxGridView1" OnHtmlDataCellPrepared="ASPxGridView1_HtmlDataCellPrepared" runat="server" AutoGenerateColumns="False">
<Columns>
<dx:GridViewDataTextColumn FieldName="ID">
<DataItemTemplate>
<dx:ASPxButton ID="btn" runat="server" Text="click me">
</dx:ASPxButton>
</DataItemTemplate>
</dx:GridViewDataTextColumn>
<dx:GridViewDataTextColumn FieldName="ItemName">
</dx:GridViewDataTextColumn>
<dx:GridViewDataTextColumn FieldName="ItemValue">
</dx:GridViewDataTextColumn>
</Columns>
</dx:ASPxGridView>
CS 页面:
protected void Page_Load(object sender, EventArgs e)
{
ASPxGridView1.DataSource = GetData();
ASPxGridView1.DataBind();
}
public DataTable GetData()
{
DataTable Table = new DataTable();
Table.Columns.Add("ID", typeof(int));
Table.Columns.Add("ItemName", typeof(string));
Table.Columns.Add("ItemValue", typeof(string));
Table.Rows.Add(1, "A", "AA");
Table.Rows.Add(2, "B", "BB");
Table.Rows.Add(2, "B", "BB");
Table.Rows.Add(2, "A", "BB");
return Table;
}
protected void ASPxGridView1_HtmlDataCellPrepared(object sender, ASPxGridViewTableDataCellEventArgs e)
{
if (e.DataColumn.FieldName == "ID")
{
ASPxButton textBox = ASPxGridView1.FindRowCellTemplateControl(e.VisibleIndex, e.DataColumn, "btn") as ASPxButton;
if (Convert.ToString(e.GetValue("ItemName")).Equals("B"))
{
textBox.Text = Convert.ToString(e.CellValue);
textBox.Visible = true;
}
else
{
textBox.Visible = false;
}
}
}
在上面的代码中,我有一个基于 ItemName 列隐藏的按钮列。
我希望这会有所帮助。
【讨论】: