gpt4 book ai didi

c# - 格式化 DataTable 列的百分比

转载 作者:太空宇宙 更新时间:2023-11-03 12:55:08 24 4
gpt4 key购买 nike

我有一个 GridView

<asp:GridView runat="server" ID="gvTrades" GridLines="None" CellPadding="0" CellSpacing="0" AutoGenerateColumns="true"></asp:GridView>

我正在尝试将第一列的格式设置为包含“%”的百分比。但是,我无法按名称访问该列。我想从代码隐藏中执行此操作,而不是在 aspx 页面中使用边界字段。

DataTable dt = SOME METHOD TO FILL UP THE DATATABLE;
gvTrades.DataSource = dt;
gvTrades.DataBind();

这就是我想要做的事情:

gvTrades.Columns["MyColumnName"].Text = {0:P};

最佳答案

如果您对列索引进行硬编码没问题,您可以在 RowDataBound 事件中简单地执行此操作:

<asp:GridView runat="server" 
ID="gvTrades"
GridLines="None"
CellPadding="0"
CellSpacing="0"
AutoGenerateColumns="true"
OnRowDataBound="gvTrades_RowDataBound">
</asp:GridView>
protected void gvTrades_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Cells[0].Text = String.Format("{0}%", e.Row.Cells[0].Text);
}
}

如果没有,您可以循环 HeaderRow 的每个单元格以查找特定的列名。找到正确的列后,您就有了所需的索引。这最好在 GridView DataBound 方法中完成,这样您就不必为每一行循环所有标题单元格。

<asp:GridView runat="server" 
ID="gvTrades"
GridLines="None"
CellPadding="0"
CellSpacing="0"
AutoGenerateColumns="true"
OnDataBound="gvTrades_DataBound">
</asp:GridView>
protected void gvTrades_DataBound(object sender, EventArgs e)
{
int myIndex = 0;
foreach (DataControlFieldHeaderCell headerCell in gvTrades.HeaderRow.Cells)
{
if (headerCell.Text == "MyColumnName")
break;

myIndex++;
}

if (myIndex <= gvTrades.HeaderRow.Cells.Count - 1)
{
foreach (GridViewRow row in gvTrades.Rows)
{
row.Cells[myIndex].Text = String.Format("{0}%", row.Cells[myIndex].Text);
}
}
}

关于c# - 格式化 DataTable 列的百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34164845/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com