let it be
行到水穷处 坐看云起时
posts - 106,comments - 399,trackbacks - 13

        以前在页面中显示数据记录信息都是在GridView控件中,虽然这个空间很好用,但是美中不足的地方也是有的,例如在每个数据记录前面加上图标,使用GridView控件做出来就很不自然。
        经过请教了解在后台代码中结合HTML语言也可以实现类似GridView控件显示的效果,而且更好。不多说了,代码先!

方法代码如下:
    protected string str;
    protected void Page_Load(object sender, EventArgs e)
    {
        databind();
    }
    private void databind()
    {
        string sql, picstr, left_str, cen_str, hig_str;
        int n;
        n = 8;
        left_str = "8px";
        cen_str = "2px";
        hig_str = "20px";
        sql = "Select TOP 8 A.KeCBH,A.KeCMC,convert(char(10),A.TianJRQ,120) As TianJRQ,B.FuZRBH,B.YongHBH,D.XingM ";
        sql += " From T_JingPKC A ,T_KeCRY B ,T_JiaoS D ";
        sql += " Where A.KeCDJBH=3 And A.KeCBH=B.KeCBH And B.YongHBH=D.YongHBH ";
        sql += " And A.KeCLXBH=1 And B.LeiXBH=2 Order By A.TianJRQ DESC";
        str = "<table width=100% border=0 cellpadding=0 cellspacing=0>";
        DataSet ds = new DataSet();
        ds = 获取.DataSets(sql);
        string kcid, kcmc, fzr, rq;
        for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
        {
            kcid = ds.Tables[0].Rows[i]["KeCBH"].ToString();
            kcmc = ds.Tables[0].Rows[i]["KeCMC"].ToString();
            fzr = ds.Tables[0].Rows[i]["XingM"].ToString();
            rq = ds.Tables[0].Rows[i]["TianJRQ"].ToString();
            str += "<tr><td width=100% style='padding-left:";
            str += left_str + ";letter-spacing:" + cen_str + ";line-height:" + hig_str;
            str += ";background-position: left center; background-repeat: no-repeat; background-image: url(" + picstr + ");'>";
            str += "<a href=http://211.69.16.170/JPKC/JPKC_MB.aspx?kecbh=" + kcid + " target=_blank >";
            str += "<font color='#000000'>";
            str += "&nbsp;";
            str += kcmc;
            str += "</font>";
            str += "</a>";
            if (Convert.ToInt32((System.DateTime.Now - Convert.ToDateTime(rq)).Days) < 5)
                str += "[<font color=red>new</font>]";
            str += "</td>";
            str += "</tr>";
        }
        str += "<tr><td width=100% align=right>";
        str += "<a href='' target=_blank>更多>>></a>";
        str += "</td></tr>";
        str += "</table>";
    }
以上主要使用字符变量str来设置显示样式,进而生成表格的形式,来显示数据信息。


同时在.aspx.cs文件中返回输出字符串参数str

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="MainInfor_GJJPKC.aspx.cs" Inherits="MainInfor_GJJPKC" %>

document.write("<%=str%>");



如有什么更好的方法和建议,请给与指点!

posted on 2008-04-23 09:46 流浪浪 阅读(200) 评论(4)  编辑 收藏 所属分类: C#

FeedBack:
2008-04-23 11:41 | Such Cloud      
这么古老的方法。。。。
用CSS样式就可以了
  回复  引用  查看    
2008-04-23 12:08 | 留恋星空      
不失为一种方案
  回复  引用  查看    
2008-04-28 21:51 | 朱竹      
老刘啊 俺也回复一下
1.没必要都在后台吧,试试前台页面中写代码,如<a href="aa.aspx?cid=<%=ds.Tables[0].Rows[i]["KeCBH"].ToString();%>"><a> 也许你会有更好的发现
2.以后就试试用类型化数据集吧,里面可以写方法,剪掉了da层,而且也不要在写如此靠大脑记忆的代码了 ds.Tables[0].Rows[i]["KeCBH"].ToString();
这个不是很土吗 要是都给你联想到了 不是很美
3.显示上的问题,grid控件是可以搞定的,别说是图标,就是每个前面都有一个不同的图片 也ok

  回复  引用  查看    
#4楼 [楼主]
2008-04-28 21:57 | 流浪浪      
哈哈
谢谢老朱

以后会注意的!
  回复  引用  查看    

标题  
姓名  
主页
Email (只有博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交