自己找資料也嘗試了蠻久
但皆以失敗告終 想問各位有經驗的大大該怎麼做
aspx
<asp:GridView ID="GridView_mem_report" runat="server" HeaderText="人員銷售排名報表" AutoGenerateColumns="true" DataSourceID="SqlDataSource_order_data_mem" OnRowCreated="GridView_mem_report_RowCreated">
<asp:SqlDataSource ID="SqlDataSource_order_data_mem" runat="server" ConnectionString="<%$ ConnectionStrings:dubyprjConnectionString %>"
SelectCommand="[dbo].[order_data_mem]" SelectCommandType="StoredProcedure">
cs
protected void GridView_mem_report_RowCreated(object sender, GridViewRowEventArgs e)
{
if (e.Row.Cells[2].ToString() != "銷售總額")
{
int number = 0;
bool b1 = int.TryParse(e.Row.Cells[2].ToString(), out number);
if (number > 10000)
{
string str = number.ToString();
}
}
}
我自己是想從抓欄位順序下手
並把欄位名稱排除掉 然後設定條件改變字體顏色
但我轉型之後的str 卻找不到該用什麼還改變顏色
已經找資料找到有點茫然 想問有沒有高手有解
e.Row.Cells[1].ForeColor = System.Drawing.Color.Red;
不好意思 這麼晚才回 好比這張圖片
我想要試著將銷售總額 達到1萬以上 和 獎金超過1500 的時候
讓兩個欄位內值的字體改變顏色
判斷你應該會寫吧?
但我轉型之後的str 卻找不到該用什麼還改變顏色
我看你的問題是不知道用什麼方式改變顏色
如果是這樣的話用上面的語法就可以了
e.Row.Cells[1].ForeColor = System.Drawing.Color.Red;
if (e.Row.Cells[2].ToString() != "銷售總額")
{
int number = 0;
bool b1 = int.TryParse(e.Row.Cells[2].ToString(), out number);
if (number > 10000)
{
e.Row.Cells[2].ForeColor = System.Drawing.Color.Red;
//改什麼顏色你可以自己選
}
}
//前端
<asp:GridView ID="gv" runat="server" OnRowDataBound="gv_RowDataBound">
//.......
</asp:GridView>
//後端
protected void gv_RowDataBound(object sender, GridViewRowEventArgs e)
{
GridViewRow gvr = e.Row;
//底下條件自己下,我只是舉例
//這樣就可以做到任何欄位想怎樣變換都可以
if (Convert.ToInt64(gvr.Cells[15].Text) < 0)
{
//後面的是Css,需要在前端先設定好
gvr.Cells[15].CssClass = "SPNum";
}
}