琐碎的杂项

这是一些在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);

posted @ 2010-06-22 15:11  Vihone  阅读(244)  评论(0编辑  收藏  举报