我是新手,学asp.net 半年,我老觉得微软的东西封装的太多,不是很自由比如数据显示的gridview datalist控件,样式不好控制,想加自己的东西部好弄,比如jquery的特效。
我想直接用基本的服务器控件和html标签,自己做可以吗?请问大家真正做开发 也是直接用微软提供的控件吗??像微软提供的登陆注册控件根本就没有用过,都是自己写的

解决方案 »

  1.   

    继承gridview等自定义控件
    第三方控件
    extjs 也不错
      

  2.   

    自定义控件  以前我们公司就是这那么搞的 封装在的底层 列表就一个标签绑定几个属性 jquery也能很好控制
      

  3.   

    自己输出HTML。想怎么控制就怎么控制。
      

  4.   

    自己用html实现,封装成自定义控件。当然Gridview、Datalist、Repeater有时也可以用,如果要做得考究的话就自己写html,封装成自定义控件。
      

  5.   

    还有微软的验证控件也是鸡肋啊
    太死板了
    不如自己写javascript验证灵活
      

  6.   

    repeter  显示数据蛮好的  至于处理没试过
      

  7.   

    从后台动态输出控件啊,还可以自定义分页,给你一段代码:
    后台:  
      //查询 绑定数据
        [AjaxPro.AjaxMethod()]
        public string SELECT_BIND_TO_TABLE(string isAudit, string billCode, string schemeName, string beginDate, string endDate,int pageIndex)
        {
            int pagesum = 10 * (pageIndex - 1);//计算要排除的数据总数
            StringBuilder SQL_STRINGS= new StringBuilder();

    //排除这些数据后就取剩下数据前10条(一页为10行数据)
            SQL_STRINGS.Append("select top 10 * from PX_TrainScheme where (BillCode not in(select top "+pagesum+" BillCode from PX_TrainScheme order by BillCode desc ))");        int isAuditInt = int.Parse(isAudit);
            if (isAuditInt == 2)
                SQL_STRINGS.Append(" and 2=2 ");
            else
                SQL_STRINGS.Append(" and Approval="+isAuditInt);
            if (billCode.Trim().Length > 0)
                SQL_STRINGS.Append(" AND SchemeCode='" + billCode + "'");
            if (schemeName.Trim().Length > 0)
                SQL_STRINGS.Append(" and SchemeName ='"+schemeName+"'");
            if (beginDate.Trim().Length > 0 && endDate.Length > 0)
                SQL_STRINGS.Append(" and (BeginDate between '" + beginDate + "' and '" + endDate+"')");
            else
                SQL_STRINGS.Append(" and (BeginDate between '"+DateTime.Now.AddMonths(-1).ToString("yyyy-MM-dd")+"' and '"+DateTime.Now.AddMonths(1).ToString("yyyy-MM-dd")+"')");        SQL_STRINGS.Append(" order by BillCode desc");
            string SELECT_SQL = SQL_STRINGS.ToString();
            DataTable source = trainSchemeBLL.getDataTableBySQL(SELECT_SQL);
            int count = trainSchemeBLL.getDataCount(isAuditInt,billCode,schemeName,beginDate,endDate);        if (count == 0)
                return "暂无数据!";
            StringBuilder text = new StringBuilder();
            text.Append("<table id='table1' style='width:400px'  class='datalist'>");        text.Append("<tr>");
            text.Append("<th style='width: 100px' >日期</td>");
            text.Append("<th style='width: 150px' >培训课程</td>");
            text.Append("</tr>");        for (int i = 0; i < source.Rows.Count; i++)
            {
                text.Append("<tr align='center' id=" + source.Rows[i]["BillCode"].ToString() + " style='cursor:hand' onMouseUp='clicktr(" + source.Rows[i]["BillCode"].ToString() + ")' onMouseOver='over()' onclick='change()'   onMouseOut='out()'>");
                text.Append("<td style='width:60px'>" + source.Rows[i]["CreateDate"].ToString() +"</td>");
                text.Append("<td colspan='6' style='text-align:left'>" + source.Rows[i]["Course"].ToString() + "</td>");
                text.Append("</tr>");
            }
            int pageCount = (int)(Math.Ceiling(count / (double)10));
            text.Append("<tr align='center'>");
            text.Append("<td colspan='2'><a href='javascript:JumpTopage(1)'>首页|</a>");//用超链接跳转下一页,并且调用JS函数
            if (pageIndex < pageCount)
            {
                text.Append("<a href='javascript:JumpTopage(" + (pageIndex + 1) + ")'>下页|</a>");
            }
            else
            {
                text.Append("<a style='color:#D4D0C8;'>下页</a>");
            }
            if (pageIndex > 1)
            {
                text.Append("<a href='javascript:JumpTopage(" + (pageIndex - 1) + ")'>|上页</a>");
            }
            else
            {
                text.Append("<a style='color:#D4D0C8;'>上页</a>");
            }
            text.Append("<a href='javascript:JumpTopage(" + pageCount + ")'>|尾页|</a>");
            text.Append("当前页:" + pageIndex + "/" + pageCount + "</td>");
            text.Append("</table>");
            return text.ToString();
        }2:js
    //查询
    function JumpTopage(page) {
       var isAudit=document.getElementById("isAudit").value;
       var billCode = document.getElementById("txtbillCode").value;
       var schemeName = document.getElementById("txtBillName").value;
       var beginDate = document.getElementById("txtBeginDate").value;
       var endDate = document.getElementById("txtEndDate").value;
          var vl = TrainManage_AddPX_TrainSheme.SELECT_BIND_TO_TABLE(isAudit,billCode,schemeName,beginDate,endDate,parseInt(page));
         // alert(vl.value);
          //将数据绑定到div层      
          document.getElementById("showdate").innerHTML=vl.value;
    }