после поиска я обнаружил, что эквивалентное событие для gridview.rowdatabound в ASPxGridView равно HtmlRowCreated.
но в соответствии с вашими требованиями вы можете попробовать HtmlDataCellPrepared, который полезен для сканирования каждой ячейки aspxgridview, а также мы можем получить доступ к значению данных из другого столбца, также здесь я прикрепляю пример кода, который описывает это.
Страница 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.
я надеюсь, что это может помочь.
person
Sanjay Radadiya
schedule
14.07.2016