读书人

请教下这么做有什么好处不用数据控件

发布时间: 2012-01-12 22:11:58 作者: rapoo

请问下这么做有什么好处,不用数据控件,全部自己拼TABLE,我现在改的烦的要死。
接手一项目
不知道是谁写的
所有显示数据的地方,全是用TABLE做的,拼HtmlTableRow,HtmlTableCell这么写的
我就想不通了,挺简单的一东西,直接搞GRIDVIEW不就完了嘛
莫非这么做有什么好处?
现在要改点功能什么的真难受
随便贴点代码,这个项目显示数据大概就类似是这么做的:

C# code
        private void LoadEmployeeData()    {        M_Employee employee= new M_Employee();        employee.Where.Resign_date.Operator = WhereParameter.Operand.IsNull;        if (employee.Query.Load())        {            lblWarning.Visible = false;            HtmlTableRow r;            do            {                r = new HtmlTableRow();                for (int i = 0; i < 18; i++)                {                    r.Cells.Add(GetTableCell(employee, i));                }                tblData.Rows.Add(r);            }            while (employee.MoveNext());        }        else        {            lblWarning.Visible = true;            lblWarning.Text = "No Data found!";        }    }    private HtmlTableCell GetTableCell(M_Employee obj, int column)    {        HtmlTableCell c;        c = new HtmlTableCell();        switch (column)        {            case 0:                if (Master.Level > 1)                {                    c.InnerHtml =                      "<a href=\"javascript:OpenPopup('600','480','EditEmployee.aspx" +                      "?employeeid=" + obj.Employee_id +                      "');\">" + obj.Employee_id + "</a>";                }                else                    c.InnerText = obj.Employee_id;                break;            case 1:                c.InnerText = selectCompanyName(obj.Company_id);                break;            case 2:                c.InnerText = selectDepartmentName(obj.Department_id);                break;            case 3:                c.InnerText = selectDivisionName(obj.Division_id);                break;            case 4:                c.InnerText = selectGroupName(obj.Group_id);                break;            case 5:                c.InnerText = obj.Last_name.Trim() + obj.First_name.Trim();                break;            case 6:                if (obj.Sex)                    c.InnerText = "男";                else                    c.InnerText = "女";                break;            case 7:              c.InnerText = obj.Ablity;                break;            case 8:                c.InnerText = obj.Duty;                break;            case 9:                if (obj.s_Married == string.Empty)                    c.InnerHtml = " ";                else if (obj.Married)                    c.InnerText = "已婚";                else                    c.InnerText = "未婚";                break;            case 10:                c.InnerText = obj.Degree.Trim();                break;            case 11:                if (obj.IsColumnNull(M_Employee.ColumnNames.Birthday))                  c.InnerHtml = " ";                else                     c.InnerText = obj.Birthday.ToString("yyyy/MM/dd");                break;            case 12:                c.InnerText = obj.Telephone.Trim();                break;            case 13:                c.InnerText = obj.Mobile;                break;            case 14:                c.InnerText = obj.Address.Trim();                break;            case 15:                if (obj.s_Transtype == string.Empty)                    c.InnerHtml = " ";                else if (obj.Transtype == 0)                    c.InnerText = "不坐班车";                else if (obj.Transtype == 1)                    c.InnerText = "坐班车";                break;            case 16:                if (obj.IsColumnNull(M_Employee.ColumnNames.Resign_date))                  c.InnerHtml = " ";                else                    c.InnerText = obj.Resign_date.ToString("yyyy/MM/dd");                break;            case 17:                c.InnerText = obj.Remark.Trim();                break;            default:                break;        }        if (string.IsNullOrEmpty(c.InnerHtml))        {            c.InnerHtml = " ";        }        c.Align = "center";        return c;    } 



[解决办法]
说实话,没看出来有什么好的。
直接Response.Write出来,说是提高效率,我还能接受。
在code里面拼接出来,真看不出来有什么好处。

感觉好像java的人喜欢这么干。。
[解决办法]
用的什么数据库呢,写表格这么复杂
[解决办法]
反正一句话,看别人代码想跳楼,改别人代码想死:)
[解决办法]
没见过这么做的,倒是见过放到页面上处理的,后台这么写意义就失去了

[解决办法]
asp也不是这样写的,如果是习惯asp,可能会在前台页上做很多绑定
[解决办法]
项目里用的,发出来不太方便....
简单说就是用图片,html控件放到table里拼出来,
显示的样式可以自己随便定,
比如让checkbox放到icon前面或后面,
或者个别项目的checkbox不显示或不可用,
总之比.net 的treeview灵活

算法用递归
[解决办法]
可能是有的项目需求不好做,这样后台写的话,可以比较随意的定!

至少以前我写过一个系统,MD,WORD文档模板老变化,最后搞得我之后全都在后台写了

TNND
[解决办法]
我也改过这样的程序,有些人这样写是因为从ASP转过来的,有些人这样写据说是为了模版替换方便,
反正个人是没有兴趣写这样的东西
[解决办法]
看看从 ASP/C++转过来的程序员写 ASP.NET的代码别有一番风味
[解决办法]
if (Master.Level > 1)
{
c.InnerHtml =
"<a href=\"javascript:OpenPopup('600','480','EditEmployee.aspx" +
"?employeeid=" + obj.Employee_id +
"');\">" + obj.Employee_id + "</a>";
}
可能他觉得这样执行js方便吧

读书人网 >asp.net

热点推荐