如何在DataGrid里面使用动态图形表示数字
2008-04-24 09:39
411 查看
本文将要简单的介绍如何在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里面,这样邦定的代码将非常简单。运行的结果如下:
好了!此文已完,祝大家工作顺利!
:P
首先为了实现这个功能我们需要一个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里面,这样邦定的代码将非常简单。运行的结果如下:
好了!此文已完,祝大家工作顺利!
:P
相关文章推荐
- 如何在DataGrid里面使用动态图形表示数字
- [导入]如何在DataGrid里面使用动态图形表示数字
- 如何在DataGrid里面使用动态图形表示数字
- 如何在DataGrid里面使用动态图形表示数字
- 图形界面中如何控制在文本框里面只能输入数字字符
- 如何使用动态创建模板列并绑定数据(GridView,Repeater,DataGrid)
- 如何使用动态创建模板列并绑定数据(GridView,Repeater,DataGrid)
- [VB.NET]winform中如何在datagrid中使用复选框表示哪几行被选中
- js里面字符1和数字1相加的结果是11,如何解决这个问题。js里面使用EL表达式。
- DataGrid动态生成模板列,模板列里面有一个TextBox,如何获取用户在TextBox里面输入的值啊?
- DataGrid实现动态数字图形效果
- 如何使用动态创建模板列并绑定数据(GridView,Repeater,DataGrid)
- Unity在BitMap中使用数字表示图片
- ubuntu里面如何以root身份使用图形界面管理文件?
- 如何实现SDI程序使用CSplitterWnd创建的多个视图的动态地显示和关闭视图
- 数组值得注意的两点以及如何创建并使用动态数组?
- EasyUi -- 如何根据动态加载panel和Datagrid
- 如何在Webservice里面使用Session和Application
- 牛腩购物4 aspnetpager控件的使用 以及 linkbutton 如何传值,判断传入的id值是否为数字
- 在WEB应用程序中如何正确使用数字证书?