• .NET各种小问题


    一、session

    用一般处理程序操作session时老是忘记实现接口,真受不了:

    添加引用 System.Web.SessionState 命名空间

    实现IRequiresSessionState接口

    二,

    asp.net中“字符文本中字符太多”错误及解决办法

    比如说这个:

      <%# WebUI.Common.PublicFun.GetAlarmSubTypeNameByAlarmID(Eval("AlarmID"))%><%#Eval("AlarmID")%>
    

     当你嵌套太多的时候他会报“字符文本中字符太多”的错误

    解决办法是用&quot;代替引号  =>>    objectid="<%# Eval(&quot;ObjectId&quot;) %>" 

    三,

    linq模糊查询

    var querys=from u in f.Users where u.id.Contains(id) && u.name.Contains(name) select u;
    
      var q = from c in baseDic where c.ItemText.Contains(typeText) select c.ItemId;
    

    很全的linq语法及实例

    http://wenku.baidu.com/view/4c85bf02a6c30c2259019e9e.html

    四,

    .net 日期类型的变量,要取它的星期(取出来默认是英文的),需要这样子,比如说:item.DutyTime这个DateTime类型变量

    string week= System.Globalization.CultureInfo.GetCultureInfo("zh-CN").DateTimeFormat.GetDayName(Convert.ToDateTime(item.DutyTime).DayOfWeek)

    这样转出来的就是中文形式的星期几了

     五,

    开发的时候,经常需要对文本框的输入字数进行限制,否则的话,会经常报错,普通的文本框可以用maxLength属性进行限制,

    富文本框就不可以了,不生效的,这里可以这么做

                        <asp:TextBox ID="txtRemark" runat="server" CssClass="input" Width="100%" TextMode="MultiLine"
                            Rows="6" />
                            <asp:RegularExpressionValidator ID="RegularExpressionValidator2" runat="server" ErrorMessage="备注长度不能大于100字"
                            Text="备注长度不能大于100字" ControlToValidate="txtRemark" 
                            Display="dynamic" ValidationExpression="^[sS]{0,100}$"></asp:RegularExpressionValidator>
    

     ValidationExpression的100就对应了文本框的限制字数

    六,

     //布尔型转成字符串型,首字母会变大写,不降序则不能赋值成功
    ddlCanModity.SelectedValue = obj.CanModity.ToString().ToLower();
    

     七,

    在服务器端用response.write输出js代码,后用response.redirect

                Response.Write("<script type='text/javascript'>alert('保存成功!');</script>");
                Response.Redirect("AcceptOfficeDocumentsList.aspx");
    

      这是注定要悲剧的!因为他会先运行完服务器端的代码,然后再去运行客户端,当遇到Response.Redirect("AcceptOfficeDocumentsList.aspx");

    它直接就给你重定向到新的页面去了,客户端事件alert('保存成功!');永远不会被执行。

    正确的做法应该是 

                Response.Write("<script type='text/javascript'>alert('保存成功!');</script>");
                Response.Write("<script type='text/javascript'>self.location.href='AcceptOfficeDocumentsList.aspx';</script>");
    

     这样它就会一起在客户端执行这代码了

     八,框架集刷新

    使用框架集时,实现对数据进行删除,修改后,对应的页面进行刷新,这里有个例子:

     当我对DocumentTypeList页面的数据进行删除时,我希望DocumentTypeTree也能实时进行更新

    <frameset border="0" framespacing="0" cols="180,*" frameborder="NO" rows="*">
        <frame src="DocumentTypeTree.aspx?menu_id=<%=Menu_id %>" name="DocumentTypeTreeFrame" frameborder="0" noresize="noresize"  id="DocumentTypeTreeFrame"/>
    	<frame src="DocumentTypeList.aspx?menu_id=<%=Menu_id %>" name="DocumentTypeListFrame"/>
    </frameset>
    

     要实现这个效果,其实很简单

    当DocumentTypeList.aspx进行删除后,调用js在客户端对左边的DocumentTypeTree.aspx进行刷新即可,这是在编辑页面写的代码

    MessageBox.ShowAndParentRedirect(this.Page, "保存成功!", Url);
    string menu_id = Request.QueryString["menu_id"];
     //这里的parent即是frameset框架集,DocumentTypeTreeFrame对应子框架的name
    Response.Write(string.Format(@"<script>parent.DocumentTypeTreeFrame.location.href=
    'DocumentTypeTree.aspx?menu_id={0}'</script>", menu_id));
    

     这样就可以进行刷新了,妥妥的!

     九,页面缓存问题

    利用window.print()打印页面的时候,被打印的页面很容易会被缓存(当请求的url不变时,请求的页面就是被缓存下来的页面),

    解决办法:请求此页面的时候给他加个时间参数(比如这样:"&time="+new Date()),这样就可以请求页面时强制发起新的http请求

    十,自定义Datatable

            // 自定义DataTable
            private DataTable MakeFileCheckListTable()
            {
                // Create a new DataTable titled 'Names.'
                DataTable FileCheckListTable = new DataTable("FileCheckList");
    
                DataColumn FileNoColumn = new DataColumn();
                FileNoColumn.DataType = System.Type.GetType("System.String");
                FileNoColumn.ColumnName = "FileNo";
                FileCheckListTable.Columns.Add(FileNoColumn);
    
                return FileCheckListTable;
            }
    
  • 相关阅读:
    puppet运维配置实列
    puppet yum仓库
    autoSvn
    centos svn快速搭建
    无交互 直接传入 -yes
    puppet案例
    if
    CentosX64使用yum快速搭建xen虚拟化环境
    groupinfo
    Ubuntu编码问题
  • 原文地址:https://www.cnblogs.com/xushining/p/3181778.html
Copyright © 2020-2023  润新知