• 琐碎的杂项


    这是一些在Asp.net编程中琐碎杂项,但有时却很重要,这里我没有作具体的大量说明,主要作为自己日后的查找

    1、如果判断访问数据库的数据不为空: 用DBNull.Value

    当不为空时才计算天数

    classObj.Days =(dr["StartDate"]!=DBNull.Value && dr["EndDate"]!=DBNull.Value)?(Convert.ToDateTime(dr.Field<DateTime?>("EndDate")) - Convert.ToDateTime(dr.Field<DateTime?>("StartDate"))).Days:0;//时长天数

     或者: Convert.IsDBNull(dr["StartDate"])== false ? (Convert.ToDateTime(row["ExpiredBeginDate"])).ToString() : "";

    可以用Convert.IsDBNull来判断是否在数据库中是空值

    2、模板列中的判断

    asp:TemplateField HeaderText="时长">                           
        <ItemTemplate>
            <asp:Label ID="Label1" runat="server" Text='<%# Eval("StartDate").ToString() != "" && Eval("EndDate").ToString() != "" ?string.Format("{0}天",((Convert.ToDateTime(Eval("EndDate"))-Convert.ToDateTime(Eval("StartDate"))).Days+1).ToString()):"" %>'></asp:Label>
        </ItemTemplate>
    </asp:TemplateField>

    3、GridView控制日期格式

    <asp:BoundField DataField="STARTDATE" HeaderText="理论开始时间"  HtmlEncode=false DataFormatString="{0:yyyy-MM-dd}"></asp:BoundField>

    取值时可以控制自己想要的格式

    Convert.ToDateTime(dr["StartDate"]).ToString("yyyy-MM-dd")

    4、GridView绑定数据时对绑定数据的判断与验证

     <asp:TemplateField HeaderText="是否已取消">
        <ItemTemplate>
            <asp:Image ID="imgIsCancel" runat="server" ImageUrl='<%#Eval("ColName1").ToString()  

                                     =="1"?"~/images/icon/yes001.gif":"~/images/icon/no002.gif" %>' />
            <asp:Label ID="Label1" runat="server" Text='<%# Bind("ColName1") %>'></asp:Label>
        </ItemTemplate>                       
    </asp:TemplateField>

    5、DropDownList报不能选择多个项时处理

    如有时设置选中项

    ddlPayTypeID.Items.FindByValue(org.PayTypeid).Selected = true;

    会报你不能选择多个项,你需要先把之前的选中项取消,即这样做

    ddlPayTypeID.SelectedIndex = -1;
    ddlPayTypeID.Items.FindByValue(org.PayTypeid).Selected = true;

     就OK了。

    6、转换数据库中的bool值

    row["status"]在数据库中为为bool值,以ture 和 false存放

    string status = Convert.toBoolean(row["status"])=="true"?"1":"0";

    7、针对数据库设计时有些字段设计为bit类型的转换

    在插入这样的数据时,true对应为1, false 对应为0

    <asp:DropDownList ID="dropCategoryStatus" runat="server" Style="position: static" Width="73px">
           <asp:ListItem Value="True">启用</asp:ListItem>
           <asp:ListItem Value="false">禁用</asp:ListItem>
    </asp:DropDownList>

    bool status= Convert.toBoolean(dropCategoryStatus.SelectedValue);

    这个status就可以直接插入到数据库中对应为bit类型的字段

    冒似这样处理也可以 如:

     select * from user where status=1 或者 select * from user where status='1' 或者 select * from user where status='True'

    这样的结果都可以。打开数据 库是以True or False形式保存,查询是以1 or 0 出结果

    8、一般的文本格式控制

    如 this.lblIssueTime.Text += string.Format("yyyy-MM-dd", obj.CreatedDate);

    9、解码URL

    例如名字name是中文,可以用escape(name)传过去

    function ReviewDetail(code,type,name)
    {
       
        var url = "PrePaymentDetail.aspx?vendorCode="+code+"&departmentType="+type+"&supplierName="+escape(name);
        return UniversalOpenWindowAndBreak(640,600,url,0)
    }

    调用方法如下:(注意引号)

    <a href="#" onclick="ReviewDetail('<%#Eval("VendorCode") %>','<%# Eval("Department") %>','<%#Eval("SupplierName") %>')">查看明细</a>

    取值方式如下,直接取

    lblSupplierName.Text = Request["supplierName"].ToString(); 

    10、日期格式的值 赋给 文本框(TextBox)

    DateTime dt = DateTime.Now;

    txtDate.Text = string.Format("{0:yyyy-MM-dd}",dt);

  • 相关阅读:
    k8s是什么
    jmeter性能测试的策略
    面试的灵魂拷问:你最大的缺点是什么?
    面试的灵魂拷问:你做过的最令你自豪的事情是什么?
    面试的灵魂拷问:你犯过的最大的失误是什么?
    5-django rest framework,搭建api,这是最重要的章节
    4-restfulapi的介绍,vue代码结构
    组合恒等式证明——「Zeilberger 老爷子的 T 恤上写了啥?」
    「NOI2020」 美食家 【矩阵快速幂】
    [CEOI2014] The Wall【最短路】
  • 原文地址:https://www.cnblogs.com/vihone/p/1762690.html
Copyright © 2020-2023  润新知