如何在DataGrid里面使用动态图形表示数字
本文將要簡單的介紹如何在DataGrid里面用圖形表是一個數字,聽起來好象要用到GUI的編程,其實不然,如果你讀完全文你就會發現其實很簡單,只是一個“小把戲”而已,但是請不要失望,其實在實際的應用中這個“小把戲”就是你項目中的一個亮點。
?????? 首先為了實現這個功能我們需要一個DataGrid,并且為這個DataGrid邦定數據,具體的邦定代碼如下(由于我說明問題的重點不在如何邦定DataGrid所以我就是用了最原始的邦定方法,目的旨在說明主題)。
?????? 畫一個DataGrid在HTML里面,代碼就像下面的一樣,我使用了一個測試的數據庫和一個測試的表名字都叫test,同時這個test表里面有a,b,c3個字段:
?? <asp:DataGrid id="DataGrid1" runat="server" Width="100%" AutoGenerateColumns="False">
?????<Columns>
??????<asp:BoundColumn DataField="a" HeaderText="名稱"></asp:BoundColumn>
??????<asp:TemplateColumn HeaderText="數字的圖形表示">
???????<ItemTemplate>
????????<asp:Label id="Label1" runat="server"></asp:Label>
???????</ItemTemplate>
??????</asp:TemplateColumn>
??????<asp:BoundColumn DataField="c" HeaderText="數字表示"></asp:BoundColumn>
?????</Columns>
????</asp:DataGrid>
????? 正如你看到的,我們使用了一個模版列來顯示數據,它只是一個Label而不是Image,其他兩個是邦定字段,c就是我們要顯示的數字了。
?????? OK,接下來我們看看,cs的部分,幫定代碼如下:
SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"]);
???SqlDataAdapter da = new SqlDataAdapter("select a,c from test",conn);
???DataSet ds = new DataSet();
???da.Fill(ds);
???this.DataGrid1.DataSource = ds.Tables[0];
???this.DataGrid1.DataBind();
????? 非常簡單。因為我不喜歡將數據邦定代碼寫在HTML里面所以我使用了ItemDataBound事件來完成這件事情。具體的代碼如下:
private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e) {
???if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem){
????Label lbl = (Label)e.Item.Cells[1].FindControl("Label1");
????lbl.Text = "<HR align='left' color='blue' size='10' width='"+e.Item.Cells[2].Text+"'>";
???}
??}
???? 看上去是不是很簡單?呵呵,希望你不會以為我在騙你,好了按照上面的步驟創建一個頁面試一試吧,效果不錯,我想通過他還可以實現其他很多有關數據的顯示,比如:比例。不過這種比例的計算你最好在邦定之前處理好放到DataTable里面,這樣邦定的代碼將非常簡單。運行的結果如下:
????? 好了!此文已完,祝大家工作順利!
總結
以上是生活随笔為你收集整理的如何在DataGrid里面使用动态图形表示数字的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何实现立体的DataGrid和具有Wi
- 下一篇: .NET中的密码学--对称加密