18 May 2006

在Asp.Net2.0中可以方便的访问配置文件web.config,如判断debug设置,验证类型等。

Asp.Net2.0中我们可以方便的访问配置文件中,.NetFrameWork2.0新增加了 SystemWebSectionGroup 类。
允许用户以编程方式访问配置文件的 system.web 组。
比如判断web.config内是否为 debug=“true”,或者判断身份验证形式

    SystemWebSectionGroup ws = new SystemWebSectionGroup();
    CompilationSection cp = ws.Compilation;
    用cp.Debug;就可以得到compilation节内关于”debug”的配置
     AuthenticationSection  as = ws.Authentication; 
    用 as.Mode  可以获取 authentication节中关于”mode”的配置,值为AuthenticationMode 枚举之一
AuthenticationMode的取值如下:

  成员名称 说明
  Forms 将基于 ASP.NET 窗体的身份验证指定为身份验证模式。 
  None 不指定身份验证。 
  Passport 将 Microsoft Passport 指定为身份验证模式。 
  Windows 将 Windows 指定为身份验证模式。在使用 Internet 信息服务 (IIS) 身份验证方法(基本、简要、集成 Windows (NTLM/Kerberos) 或证书)时适用此模式。 

    
附:SystemWebSectionGroup 类的公共属性:

  名称 说明
Public property AnonymousIdentification 获取 anonymousIdentification 节。
Public property Authentication 获取 authentication 节。
Public property Authorization 获取 authorization 节。
Public property BrowserCaps 获取 browserCaps 节。
Public property ClientTarget 获取 clientTarget 节。
Public property Compilation 获取 compilation 节。
Public property CustomErrors 获取 customErrors 节。
Public property Deployment 获取 deployment 节。
Public property DeviceFilters 获取 deviceFilters 节。
Public property Globalization 获取 globalization 节。
Public property HealthMonitoring 获取 healthMonitoring 节。
Public property HostingEnvironment 获取 hostingEnvironment 节。
Public property HttpCookies 获取 httpCookies 节。
Public property HttpHandlers 获取 httpHandlers 节。
Public property HttpModules 获取 httpModules 节。
Public property HttpRuntime 获取 httpRuntime 节。
Public property Identity 获取 identity 节。
Public property IsDeclarationRequired  获取一个值,该值指示是否需要声明此 ConfigurationSectionGroup 对象。 (从 ConfigurationSectionGroup 继承。)
Public property IsDeclared  获取一个值,该值指示是否已声明此 ConfigurationSectionGroup 对象。(从 ConfigurationSectionGroup 继承。)
Public property MachineKey 获取 machineKey 节。
Public property Membership 获取 membership 节。
Public property MobileControls 获取 mobileControls 节。
Public property Name  获取此 ConfigurationSectionGroup 对象的名称属性。(从 ConfigurationSectionGroup 继承。)
Public property Pages 获取 pages 节。
Public property ProcessModel 获取 processModel 节。
Public property Profile 获取 profile 节。
Public property Protocols 获取 protocols 节。
Public property RoleManager 获取 roleManager 节。
Public property SectionGroupName  获取与此 ConfigurationSectionGroup 关联的节组名称。(从 ConfigurationSectionGroup 继承。)
Public property SectionGroups  获取一个包含所有 ConfigurationSectionGroup 对象的 ConfigurationSectionGroup 对象,这些对象是此 ConfigurationSectionGroup 对象的子对象。(从 ConfigurationSectionGroup 继承。)
Public property Sections  获取一个 ConfigurationSectionCollection,它包含此 ConfigurationSectionGroup 中的所有 ConfigurationSection 对象。(从 ConfigurationSectionGroup 继承。)
Public property SecurityPolicy 获取 securityPolicy 节。
Public property SessionState 获取 sessionState 节。
Public property SiteMap 获取 siteMap 节。
Public property Trace 获取 trace 节。
Public property Trust 获取 trust 节。
Public property Type  获取或设置此 ConfigurationSectionGroup 对象的类型。(从 ConfigurationSectionGroup 继承。)
Public property UrlMappings 获取 urlMappings 节。
Public property WebControls 获取 webControls 节。
Public property WebParts 获取 webParts 节。
Public property WebServices 获取 webServices 节。
Public property XhtmlConformance 获取 xhtmlConformance 节。

10 May 2006

推荐一个.Net做的图形处理软件--Paint.NET

 

Home   Features     Download   Roadmap   Screenshots   Forum  

AboutPaint.NET is image and photo manipulation software designed to be used on computers that run Windows 2000, XP, Vista, or Server 2003. It supports layers, unlimited undo, special effects, and a wide variety of useful and powerful tools.

The programming language used to create Paint.NET is C#, with a small amount of C++ for setup and shell-integration related functionality


04 May 2006

Vs2005的倒退?

String abc = 123.ToString;

代码在Vs2003内编译将得到错误信息

在不带括号的情况下引用了方法.....

在Vs2005(8.050727.42 /rtm 50727 4200)内编译则得到错误信息:

“无法将方法组“ToString”转换为非委托类型“string”。您是要调用方法吗?”

而上边代码等号右边的部分如果位于一个方法内做参数,那将得到一个错误信息:

参数“1”: 无法从“方法组”转换为“string”

语气上更加亲切了,比如多了个“您”字,可是语意上却更加看不懂了....

30 Apr 2006

CSDN上的打油诗,大家分享

http://terrylee.cnblogs.com/archive/2006/04/28/387669.html
看到 一部分 ,把我当时从 帖子里拔下来的 再贴一下,分享 ~~~~

CSDN上的打油诗,大家分享


写字楼里写字间,写字间里程序员;程序人员写程序,又拿程序换酒钱。
酒醒只在网上坐,酒醉还来网下眠;酒醉酒醒日复日,网上网下年复年。
……
宁愿老死程序间,只要老板多发钱;小车大房不去想,撰个2    k好过年。
若要见识新世面,公务员比程序员;一个在天一在地,而且还比我们闲。
别人看我穿白领,我看别人穿名牌;天生我才写程序,臀大近视肩周炎。


年复一年春光度,度得他人做老板;老板扣我薄酒钱,没有酒钱怎过年.
春光逝去皱纹起,作起程序也委靡;来到水源把水灌,打死不做程序员.
别人笑我忒疯癫,我笑他人命太贱;状元三百六十行,偏偏来做程序员!!


但愿老死电脑间,不愿鞠躬老板前;奔驰宝马贵者趣,公交自行程序员。
若将程员比妓女,一在平地一在天;若将程员比车马,他得驱驰我无闲。
别人笑我忒疯癫,我笑自己命太贱;不见满街漂亮妹,哪个归得程序员。


不想只挣打工钱,那个老板愿发钱;小车大房咱要想,任我享用多悠闲。
比尔能搞个微软,我咋不能捞点钱;一个在天一在地,定有一日乾坤翻。
我在天来他在地,纵横天下山水间;傲视武林豪杰墓,一樽还垒风月山。



电脑面前眼发直,眼镜下面泪茫茫;做梦发财好几亿,从此不用手指忙。
哪知梦醒手空空,老板看到把我训;待到老时眼发花,走路不知哪是家。


各位在此穷抱怨,可知小弟更可怜;俺学编程两年半,至今没赚一分钱。
听说三十是末日,二十三岁在眼前;发誓立志傍微软,渺渺前程对谁言?



小农村里小民房,小民房里小民工;小民工人写程序,又拿代码讨赏钱。


钱空只在代码中,钱醉仍在代码间;有钱无钱日复日,码上码下年复年。


但愿老死代码间,不愿鞠躬奥迪前,奥迪奔驰贵者趣,程序代码贫者缘。


若将贫贱比贫者,一在平地一在天;若将贫贱比车马,他得驱驰我得闲。


别人笑我忒疯癫,我笑他人看不穿;不见盖茨两手间,财权富贵世人鉴。



(参考:**  桃花庵歌**
          ——唐寅


桃花坞里桃花庵,桃花庵里桃花仙;桃花仙人种桃树,又摘桃花换酒钱。
酒醒只在花间坐,酒醉还来花下眠;半醒半醉日复日,花开花落年复年。
但愿老死花酒间,不愿鞠躬车马前;车尘马足贵者趣,酒盏花枝贫者缘。
若将贫贱比贫者,一在平地一在天;若将贫贱比车马,他得驱驰我得闲。
别人笑我忒疯癫,我笑他人看不穿;不见五陵豪杰墓,无花无酒锄作田。)


http://expert.csdn.net/Expert/xsl/Reply_Xml.asp?Topicid=2010462
http://www.github.com/private/showthread.asp?threadid=134

17 Apr 2006

原来验证码可以租的哦

http://www.textdisguise.com/TextDisguise/default.aspx
提供webservice生成防止机器人的CAPTCHA Image
看样子挺贵的,不过Demo看起来很不错。

13 Apr 2006

一个非常Strong 的ListBox控件EasyList


用于开发人员工具箱的资源
提到的EasyListBox是一款功能非常强大的ListBox控件
功能嘛我不说了                                                                                                             
http://easylistbox.com/demoColumns.aspx体验一下那20几个demo就知道了

11 Apr 2006

Yetanotherforum 编辑表情后不立即更新

文件  FormatMsg.cs


方法iAddSmiles内


Code:
strTemp = strTemp.Replace(code.ToLower(),String.Format("<img src=\"{0}\" alt=\"{1}\" />",basePage.Smiley(Convert.ToString(row["Icon"])),basePage.Server.HtmlEncode(row["Emoticon"].ToString())));
调用了两次可能导致被转化成html后有乱码出现


在方法GetSmilies内
Code:
System.Web.HttpContext.Current.Cache.Insert("Smilies",dt,null,DateTime.Now.AddMinutes(60),TimeSpan.Zero);
加入缓存项的Key和更新/删除时移除缓存的Key不一致 导致编辑表情后不立即更新
DB.cs
Code:
System.Web.HttpContext.Current.Cache.Remove("Smiles");

08 Apr 2006

两个DropDownList在Repeater、DataList、DataGrid内的连动和冒泡事件(BubbleEvent)

两个DropDownList在Repeater、DataList、DataGrid内的连动和冒泡事件(BubbleEvent)
        问题:
http://community.csdn.net/Expert/topic/4670/4670056.xml?temp=3.944033E-02
        刚看第一眼觉得在第一个DDL的SelectedIndexChanged事件内绑定第二个DDL就ok了,页面上写或者ItemDataBound内写事件挂接代码都可以。打开VS写测试却发现有点障碍哦,
在SelectedIndexChanged内要知道去绑定哪个行哪个列的DDL要费些周折
只有从DDL一级一级的向上找Parent最后找到DataGridItem,再利用其ItemIndex定位到行然后FindControl到要绑定的DDL,最终可以实现,好像比较累哦。
        随又想到DataGrid的ItemCommand事件,但发现WebControl内只有Button ImageButton LinkButtonCommandName属性和 CommandArgument属性,并可以将事件上浮(冒泡).DropDownList先天不足!真是郁闷~~~~~ 能不能自己改造呢?动手试试就知道了。

<%@ Page Language="C#" Debug="true" %>
<%@ Import Namespace="System.Data" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="gb2312" lang="gb2312">
<head>
<title> ItemDataBoundGetColumnName </title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<meta name="title" content="" />
<meta name="author" content="活靶子,Huobazi,www.AspxBoy.com" />
<meta name="subject" content="" />
<meta name="language" content="gb2312" />
<meta name="keywords" content="" />
<meta name="Copyright" content="www.AspxBoy.com" />
<meta name="robots" content="all" />

<script language="c#" runat="server">
void BindGrid()
{
        DataTable dt = new DataTable();
        DataRow dr;
        dt.Columns.Add(new DataColumn("IntegerValue", typeof(Int32)));
        dt.Columns.Add(new DataColumn("StringValue", typeof(string)));
        dt.Columns.Add(new DataColumn("DateTimeValue", typeof(DateTime)));
        dt.Columns.Add(new DataColumn("BoolValue", typeof(bool)));
        dt.Columns.Add(new DataColumn("CurrencyValue", typeof(double)));
        for (int i = 0; i < 36; i++) {
            dr = dt.NewRow();
            dr[0] = i;
            dr[1] = "项 " + i.ToString();
            dr[2] = DateTime.Now;
            dr[3] = (i % 2 != 0) ? true : false;
            dr[4] = 1.23 * (i+1);
            dt.Rows.Add(dr);
        }
  dg.DataSource= dt;
  dg.DataBind();
}
void Page_Load(object o, EventArgs e)
{
     dg.PagerStyle.Mode = PagerMode.NumericPages;
     if(!IsPostBack)
     {
        BindGrid();
     }
}
 
void btnClick(object o , EventArgs e)
{
     Response.Write("页面回发,但是不执行ItemDataBound");
}
 
void PageChange(object o , DataGridPageChangedEventArgs e)
{
     dg.CurrentPageIndex = e.NewPageIndex;
     BindGrid();
}
void ItemDataBound(object o , DataGridItemEventArgs e)
{
     if(e.Item.ItemIndex > -1 )//必须
     {
          DataRowView drv = (DataRowView)e.Item.DataItem;
          for (int i=0; i<drv.Row.Table.Columns.Count ; i++)
          { 
            Response.Write(drv.Row.Table.Columns[i].ColumnName + "&nbsp;&nbsp;");
          }
     }
}
</script>

</head>
<body>
<form runat="server">
  <ASP:DataGrid id="dg" runat="server"      
   HeaderStyle-BackColor="#aaaadd"
   AutoGenerateColumns="true"
   AllowPaging="true"
   PageSize="6"
    OnItemDataBound="ItemDataBound"
    OnPageIndexChanged="PageChange"
  >
  </asp:DataGrid>
  </br>
   <asp:button id="btn" runat="server" onclick="btnClick" Text="我是按钮,按我一下"></asp:button>
在AutoGenerateColumns="false"使用绑定列或者模板列的时候只需要使用 

<font color="blut">YourDataGrid.Columns[编号].HeaderText</font> 去获取
  
</form>
</body>
</html>

http://www.aspxboy.com/Files/71/66/284.Aspx

 

24 Mar 2006

关于Data Access Blok (SqlHelper.cs)使用时出现

关于Data Access Blok (SqlHelper.cs)使用时出现"对象必须实现 IConvertible/Object must implement IConvertible."异常

在使用低版本 Data Access Blok  时,出现如下异常
“/”应用程序中的服务器错误。
--------------------------------------------------------------------------------

 

对象必须实现 IConvertible。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

 

异常详细信息: System.InvalidCastException: 对象必须实现 IConvertible。

 

源错误:

 
行 360:   
行 361:   //finally, execute the command.
行 362:   int retval = cmd.ExecuteNonQuery();
行 363:   
行 364:   // detach the SqlParameters from the command object, so they can be used again.

 

参考http://weblogs.asp.net/ssmith/archive/2003/08/19/24524.aspx#92222
做修改
the simple fix is to change line 93 to read:
commandParameters[i].Value = ((SqlParameter)parameterValues[i]).Value;

 

instead of:
commandParameters[i].Value = parameterValues[i];

 

正常工作。

14 Mar 2006

四、六级证件真伪查询就是摆设

证书上联系电话是空号
http://www.scol.com.cn/technology/wjzx/20050808/20058891927.htm

联系了一下cet官方网站上公布的电话(http://www.cet.edu.cn/contract.htm
----------------------------------
全国大学英语四、六级考试办公室
上海邮政信箱30-14
上海交通大学浩然高科技大厦2203室
上海华山路1954号,200030
电话:021-52583311
传真:021-62932756
-----------------------------------
人家告诉我,必须要持单位介绍信亲自到上海去查,对全国都是这样操作的。这不是摆设吗?
如果我人在西藏用人单位,应聘人员证书核实还要亲自去上海,真是搞笑,看来如果哪位朋友没有通过,自己画一个就可以用,证书上的查询电话是空号,全国大学英语四、六级考试办公室得查询又是摆设。