我电脑中ASP.NET学习资料

来源:互联网 发布:四川广电网络公司性质 编辑:程序博客网 时间:2024/05/22 06:15

 
asp.net做的网站:
http://eyou.allnet.cn 一个交友网站,算是我做过的功能性最强的一个了,呵呵,我本身做的大的就不多,开发了差不多一个月多点儿的时间吧,当然,我只是做后台程序,前台美工会给我做页子.

http://sxtk.allnet.cn 一个图库网站,其实主要就是图片的发布,可以自动打水印自动生成缩略图,功能方面主要是有个人像册功能(运营得还不错) 企业像册功能(根本没有运营起来...我费了好大劲儿做的) 图片仓库(大家可以上去存图片) 以及一个帖图区,总共开发了也有一个多月的时间.

----------------------------------------------------------------------------------------
无法找到脚本库“/aspnet_client/system_web/1_1_4322/webuivalidation.js“。请尝试手动放置此文件
如果你用到验证控件,就需要把aspnet_client目录拷贝到你的项目根目录下了。
验证控件自动产生的客户端程序会在webuivalidation.js中

可以直接拷贝,也可以通用运行aspnet_regiis -i重新安装

C:/WINDOWS/Microsoft.NET/Framework/v1.1.4322/aspnet_regiis -c 重新安装一下脚本就行,不用重装 asp.net 的

出现这个问题就是因为你在IIS中更改了默认目录,问题解决只需复制此文件夹aspnet_client到您改的目录下OK。

系统目录:/WINDOWS/Microsoft.NET/Framework/v1.1.4322/aspnet_regiis -i  重新映射脚本。

这是因为你的.Net框架错误或IIS设置的虚拟目录发生了变动之后引起的问题!
解决的方案有很多,这里给你一种快点的的办法:
打开开始菜单-程序-Microsoft Visual Studio .NET 2003-Visual Studio .NET 工具-Visual Studio .NET 2003 命令提示
直接输入以下命令:
aspnet_regiis -i
这个时候会现以下提示:
开始安装 ASP.NET (1.1.4322.0)。
已安装完 ASP.NET (1.1.4322.0)。
然后再输入以下命令:
aspnet_regiis -c
这个时候会出现以下提示:
开始复制此版本(1.1.4322.0)的 ASP.NET 客户端脚本文件。
已复制完此版本(1.1.4322.0)的 ASP.NET 客户端脚本文件。

OK!现在应该不会再出现你所说的哪个问题了!

----------------------------------------------------------------------------------------
怎样设定起始页的
1、大小?
2、使最小化、最大化按钮失效?
3、怎样设定起始页使其充满屏幕?

1.
window.moveTo(x,y)  //x,y指坐标
window.resizeTo(x,y) //x,y指长度
2.
<script>
<!--
function opwindow()
{
if(window.name!="mis")
{
window.open(location.href,'mis','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,menu=no,min=no,max=no');
window.opener = null;
window.close();
}
}
if(window.name!="mis")
opwindow();
//-->
</script>

主要通过resizable=no

3 最大化??
<script>
<!--
self.moveTo(0,0) 
self.resizeTo(screen.availWidth,screen.availHeight)
</script>
----------------------------------------------------------------------------------------
1--怎么实现,当鼠标放在HyperLink上时,HyperLink的图片发生变化,离开时又恢复原状。
(我知道是要指定HyperLink的imageUrl,但是没有这个事件mouseon or mouseover)
2--怎么实现新闻的感动显示,就像csdn上滚动新闻显示。。

this.HyperLink1.Attributes.Add("onmouseout","image.src=image/heat.gif");
this.HyperLink1.Attributes.Add("onmouseon","image.src=image/miss.gif");

----------------------------------------------------------------------------------------
就是鼠标第一次移上去时单击为全选,后面的点击就取消全选,如何实现?

还有这个效果该如何实现:鼠标移上去时文本框的内容为全选,然后单击鼠标就取消全选。。。

//鼠标第一次移上去时单击为全选,后面的点击就取消全选

private bool flag = false;

private void textBox1_Click(object sender, EventArgs e)
{
 if (flag == false)
 {
  flag = true;
  textBox1.SelectAll();
 }
}

private void textBox1_LostFocus(object sender, EventArgs e)
{
 flag = false;
}

-----------------------------

//鼠标移上去时文本框的内容为全选,然后单击鼠标就取消全选

private void textBox1_Click(object sender, EventArgs e)
{

}

private void textBox1_MouseEnter(object sender, EventArgs e)
{
 textBox1.SelectAll();
}
----------------------------------------------------------------------------------------
谁有DataGrid自定义控件,要有导入excel,word功能和打印功能。

自己继承datagird写一个吧,参考:
在ASP.NET中使用Microsoft Word文档
http://blog.csdn.net/asthlon/archive/2004/08/17/77037.aspx

DataGrid输出到Excel并进行格式化处理
http://dotnet.aspx.cc/ShowDetail.aspx?id=8A4CBF47-B888-4832-3389-ED3A3A3C8AAB

导入/导出Excel
http://blog.csdn.net/asthlon/archive/2004/08/17/77037.aspx

----------------------------------------------------------------------------------------
我想把freetextbox里的基本东西弄清楚,使我对开发控件有所了解,而且还可以扩充其一些功能,希望有些研究过freetextbox的高手指点,也希望csdn上的一些朋友发些教程,我也会在这里发些我每天学习的心得,谢谢了。。还有新年快乐!!

 


http://www.percyboy.com/w/ftb/down/FTB_1.6.3_zh_Source.zip
中文版 1.6.3 在原版本基础上,除了汉化了控件的界面,而且为核心类 FreeTextBox 的每个属性添加了中文说明(DescriptionAttribute),使得控件在 Visual Studio .NET 中显示时属性编辑器中会显示相应的说明。[

 

还有这个


关于FreeTextBox 1.63/2.0.7/3.0RC/3.0的一些东西原文网址:http://www.blogwind.com/Wuvist/comment.aspx?Article_id=5421

作者:Wuvist

转载者请注明原文出处以及我的名字,谢谢……倘若,您需要使用到文中的javascript函数,亦请保留函数名称。

FreeTextBox应该是应用最广泛的免费asp.net控件之一了……

FreeTextBox Team把FTB称为:“The no.1 free ASP.NET HTML Editor for IE and Mozilla. ”说得可是一点都没有错……

 

我从去年12月开始做博客风的时候,便使用了FTB 1.6.3破宝汉化版作为后台编辑器。这个版本的FTB,应该是在国内流传最广的版本……

 

FTB的最大优点是将文本处理都采用JavaScript来处理,避免了asp.net控件时常需要将页面postback的弊病。个人感觉,是有可以将FTB生成的静态页面保存下来,然后将其当作纯xhtml的在不支持asp.net的服务器中使用,只是,工程很大,似乎也没有任何程序员想做这么件事情……毕竟,还有htmlarea等东西存在。

在那个时候,FTB是开源的,并且功能已经足够强大……唯一的遗憾是1.X版本的FTB并不支持Mozilla……我在将其加入博客系统中的时候,也自己添加表情代码风格、图片插入功能,虽然有FTB的源码,但是从使用的角度来说,我不认为在扩展FTB功能的时候应该去修改其c#代码……直接编写新的javascript会灵活很多……我当时使用的是类似:


function Wuvist_code(ftbName) { 
    if (FTB_IsHtmlMode(ftbName)) return;
        editor = FTB_GetIFrame(ftbName);
        var range = editor.document.selection.createRange();
        var RangeType = editor.document.selection.type;
        if ( RangeType == "Text" )
        {
            range.execCommand("RemoveFormat");
            var rangeText = range.htmlText;
            range.pasteHTML('<PRE style="font-size:90%;font-family:/'courier new/',courier,serif;line-height:1em;background:#EEEEEE;margin-top:1em; margin-bottom:1em; margin-left:0px;padding:5pt;">'+rangeText+'</PRE>');
        }
        else if ( RangeType == "None" )
        {
            alert("你没有选择任何东西,无法完成此功能!");
        }
        else
        {
            alert("选择部分中,存在控件,无法进行指定的文本格式化!!");
        }
}
的JavaScript来实现的。

从FTB 2.0开始,便支持Mozilla了……好像,只有FTB这一个编辑器可以支持Mozilla……FreeTextBox Team的html/css/javascript的功力实在是强……2.X版本的FTB对于javascript的调用做了大幅度修改……看得出来,相对起1.X版本javascript代码进步了很多……

不过,FTB 2.0开始对源码收费,而且,免费版本只有最基本的编辑功能可以使用,像“清楚word格式”、“统计字数”等得编辑功能都消失了……(不过,我也不清楚是不是我这个白痴不会把他们调用出来……)

因为FTB1.X的图片上传、插入、管理页面存在安全隐患,2.X取消了……不过,它内置的图片插入按钮实在让人窝火……明明就不支持图片上传,为什么要放一个浏览的功能键呢???无数用户以为它可以上传图片,在用户本机上,图片的浏览效果也很好……可惜,也就只有用户本人可以看到而已……

其实,在FTB2.X里面也是可以调用1.X的那个图片管理文件ftb.imagegallery.aspx。我采用的是类似:
function Wuvist_image() {
    if (FTB_IsHtmlMode('WTB1')) return;
    editor = FTB_GetIFrame('WTB1');
    editor.focus();
 
    var folder = '<%=用户图片目录名%>';
    var galleryscript = '/ftb.imagegallery.aspx?rif='+folder+'&cif='+folder;
 
    if (isIE) {
            imgArr = showModalDialog(galleryscript,window,'dialogWidth:560px; dialogHeight:500px;help:0;status:0;resizeable:1;');
            if (imgArr != null) {
                imagestring = '<IMG SRC="' + imgArr['filename'] + '" HEIGHT=' + imgArr['height'] + ' WIDTH=' + imgArr['width'] + ' BORDER=0>';
                sel = editor.document.selection.createRange();
                sel.pasteHTML(imagestring);
            }
    } else {        
        alert("图片上传功能限只支持IE。");
    }
}
来实现。而插入表情的代码则类似:

function Wuvist_emots(emot) { 
    if (FTB_IsHtmlMode('WTB1')) return;
   
    editor = FTB_GetIFrame('WTB1');
    editor.focus();
 
    if (isIE) {
        var range = editor.document.selection.createRange();
        range.pasteHTML("<IMG  src='images/emot/"+emot+".gif' border=0>");
    } else {
        selection = editor.window.getSelection();
        editor.focus();
        if (selection) {
            range = selection.getRangeAt(0);
        } else {
            range = editor.document.createRange();
        } 
        FTB_InsertText('WTB1',"<IMG  src='images/emot/"+emot+".gif' border=0>");        
    }    
}
同样的,也可以自己做出“清除word格式”、“统计字数”等等按钮。因为没有FTB源码,自己弄出来的这些新按钮,只能放在FTB编辑器外边,不过,这个应该不是一个大问题吧……我也是比较喜欢通过用纯javacript来实现新功能。

我使用的是FTB 2.0.7版……这个版本的FTB在parse html的时候,似乎有错误……用户在插入类似:
<EMBED src=http://www.blogwind.com/music.mp3 width=375 height=47 type=audio loop="1" autostart="false" controls="ControlPanel,StatusBar" console="Clip1"></EMBED> 的HTML的时候,它经常把“src=http”后面的URL自动去掉……

看的时候可以看到,但是提交后,ftb.text就已把http后的内容干掉了……不知道是哪里的bug……博客园使用的FTB亦有这个问题!

我能够想到的解决办法就是升级到3.0版的FTB,3.0版本也添加了Mac风格,很可爱……

不过,原来发布的FTB 3.0 RC版实在是一个令人失望的版本……好端端的为什么要将所有的javascript/图片整合到dll里面呢?慢……虽然可以选择external source……但是,它并没有提供Mac风格的外部文件……同样的……它也是bug多多……

终于……FreeTextBox Team在12/09/2004发表了新的3.0版……可以完全使用external javascirpt/image……新的图片管理文件ftb.imagegallery.aspx亦非常好用……看其javascript代码,明显由再次做了优化,又简洁了很多……不过,要自己弄添加表情按钮javascipt又得做调整,我写出来的函数类似:
function Wuvist_emot(number) { 
    ftb = 'WTB1';
    img = '<IMG  src="images/emot/'+number+'.gif" border=0>';        
    window.parent.FTB_API[ftb].InsertHtml(img);
}
呵呵……真的简洁很多……

关于FTB 3.0,偶其实还发现了另一个很“关键”的东西……不过,出于对FreeTextBox Team版权的尊重,偶就不写出来了……也许,FreeTextBox Team是故意留下来这样的“后门”吧……反正,也是很简单的事情,大家有兴趣不妨自己研究……偶在博客风中使用了这一技巧……


----------------------------------------------------------------------------------------
<EditItemTemplate>
       <asp:RadioButton id="rb_3" runat="server" Text="男" AutoPostBack="false" Checked='<%# Convert.ToInt32(DataBinder.Eval(Container.DataItem,"sex"))==1?true:false %>' GroupName="iSign">
       </asp:RadioButton>
       <asp:RadioButton id="rb_4" runat="server" Text="女" AutoPostBack="false" Checked='<%# Convert.ToInt32(DataBinder.Eval(Container.DataItem,"sex"))==0?true:false %>' GroupName="iSign">
       </asp:RadioButton>
      </EditItemTemplate>
在点了编辑以后我在cs页面怎么才能取到这个值??
string city = ((TextBox)e.Item.Cells[1].Controls[1]).Text;文本框的话是这样取道的,单选框怎么取到呢??


要取到的话,参考:
http://datagridgirl.com/customcolumns.aspx
----------------------------------------------------------------------------------------
ado.net详细研究(三) —— DataReader(二)     选择自 bineon 的 Blog
DataReader类

1. 创建DataReader对象

前面提到过没有构造函数创建DataReader对象。通常我们使用Command类的ExecuteRader方法来创建DataReader对象:

SqlCommand cmd = new SqlCommand(commandText,ConnectionObject)

SqlDataReader dr = cmd.ExecuteReader();

         DataReader类最常见的用法就是检索Sql查询或者存储过程返回的记录。它是连接的只向前和只读的结果集,也就是使用它时,数据库连接必须保持打开状态,另外只能从前往后遍历信息,不能中途停下修改数据。

         注意:DataReader使用底层的连接,连接是它专有的,这意味这DataReader打开时不能使用对应连接进行去他操作,比如执行另外的命令等。使用完DataReader后一定记得关闭阅读器和连接。

       2. 使用命令行为指定DataReader的特征

       前面我们使用cmd.ExecuteReader()实例化DataReader对象,其实这个方法有重载版本,接受命令行参数,这些参数应该时Commandbehavior枚举:

       SqlDataRader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);

上面我们使用的是CommandBehavior.CloseConnection,作用是关闭DataReader的时候自动关闭对应的ConnectionObject。这样可以避免我们忘记关闭DataReader对象以后关闭Connection对象。别告诉我你不喜欢这个参数,你能保证你记得关闭连接。万一你忘记了呢?又或者你使用你的partner开发的组件来进行开发呢?这个组件并不一定让你有关闭连接的权限哦。另外CommandBehavior.SingleRow可以使结果集返回单个行,CommandBehavior.SingleResult返回结果为多个结果集的第一个结果集。当然Commandbehavior枚举还有其他值,请参见msdn。

       3. 遍历DataReader中的记录

       当ExecuteReader方法分会DataReader对象时,当前光标的位置时第一条记录的前面。必须调用数据阅读器的Read方法把光标移动到第一条记录,然后第一条记录就是当前记录。如果阅读器包含的记录不止一条,Read方法返回一个bool值true。也就是说Read方法的作用是在允许范围内移动光标位置到下一记录,有点类似rs.movenext,不是吗?如果当前光标指示着最后一条记录,此时调用Read方法得到false。我们经常这样做:

While(dr.Reader())

{

//do something with the current record

}

注意,如果你对每一条记录的操作可能花费比较长的时间,那么意味着阅读器将长时间打开,那么数据库连接也将维持长时间的打开状态。此时使用非连接的DataSet或许更好一些。

       4. 访问字段的值

       有2种方法。第一种是Item属性,此属性返回字段索引或者字段名字对应的字段的值。第二种是Get方法,此方法返回有字段索引指定的字段的值。有点难以理解,不是吗?不要紧,看例子就OK了。

       Item属性

       每个DataReader类都定义一个Item属性。比如现在我们有一个DataReader实例dr,对应的sql语句是select Fid,Fname from friend,则我们可以使用下面的方法取得返回的值:

         object ID = dr[“Fid”];

object Name = dr[“Fname”];

或者:

       object ID = dr[0];

object Name = dr[0];

注意索引总是从0开始的。另外也许您发现了我们使用的是object来定义对ID和Name,是的,Item属性返回的值是object型,但是您可以强制类型转换。

       int ID = (int)dr[“Fid”];

string Name = (string)dr[“Fname”];

记住:确保类型转换的有效性是您自己的责任,否则您将得到异常。

       Get方法

       起始我们在第一篇文章里面已经使用过改方法了。每个DataReader都定义了一组Get方法,比如GetInt32方法把返回的字段值作为.net clr 32位证书。同上面的例子一样我们用如下方式访问Fid和Fname的值:

int ID = dr.GetInt32(0);

string Name = dr.GetString(1);

注意虽然这些方法把数据从数据源类型转化为.net数据类型,但是他们不执行其他的数据转换,比如他们不会把16位整数转换为32位的。所以您必须使用正确的Get方法。另外Get方法不能使用字段名来访问字段,也就是说上面的没有:

int ID = dr.GetInt32(“Fid”);                             //错误

string Name = dr.GetString(“Fname”);              //错误

显然上面这个缺点在某些场合是致命的,当你的字段很多的时候,或者说你过了一段时间以后再来看你这些代码,你会觉得很难以理解!当然我们可以使用其他方法来尽量解决这个问题。一个可行的办法是使用const:

const int FidIndex = 0;

const int NameIndex = 1;

int ID = dr.GetInt32(FidIndex);

string Name = dr.GetString(NameIndex);

这个办法并不怎么好,另外一个好一些的办法:

int NameIndex = dr.GetOrdinal(“Fname”);       //取得Fname对应的索引值

string Name = dr.GetString(NameIndex);

这样似乎有点麻烦,但是当须要遍历阅读器种大量的结果集的时候,这个方法很有效,因为索引只需执行一次。

int FidIndex = dr.GetOrdinal(“Fid”);

int NameIndex = dr.GetOrdinal(“Fname”);

while(dr.Read())

{

         int ID = dr.GetInt32(FidIndex);

         string Name = dr.GetInt32(NameIndex);

}

 

到目前为止,我们已经讨论了DataReader的基本操作了。至于DataReader的有些高级超作我们以后再讨论。

下次我们构建一个项目——个人通讯录(单用户版本)。在这个项目中我们将用到前面讨论的所有知识,同时在这个项目里面我将尽量是这个项目符合多层体系结构标准。