在使用Asp.net制作网站的时候遇到的问题(一)

 

1.问题:StreamReader中ReadLine()方法不能读取汉字

解决办法:StreamReader Reader=new StreamReader(sFileName,System.Text.Encoding.Default);

2.问题:如何在Asp.Net中使用相对路径

解决:使用Server.MapPath("相对路径名")来作为路径 

3.问题:<%# %>语法绑定的数据只有在DataBind()方法以后才会被求值,而<%= %>语法会在运行到该位置然后被求职。如果使用<%# %>语法绑定数据不在正确位置显示,则需检查DataBind()是否被调用

4.问题:动态生成控件LinkButton的数组,Click事件由MapMenuItem_Click方法实现,MapMenuItem_Click方法内容如下:  

 protected void MapMenuItem_Click(object sender, EventArgs e)
{
        LinkButton ItemLink=(LinkButton)sender;
        ItemPerPage = 5;
        sType="'"+ItemLink.Text+"'";
        Session["ItemPerPage"] = ItemPerPage;
        Session["Type"] = sType;
}
Session的内容由一个用户控件使用,用户控件直接拖入窗口~~我希望单击LinkButton后运行如下过程:MapMenuItem_Click设置Session->回发页面并加载用户控件->用户控件的Load运行并读取Session数据->用户控件显示内容
但是实际上点击LinkButton后运行如下过程:回发页面并加载用户控件->用户控件的Load运行并读取Session数据->用户控件显示内容->MapMenuItem_Click设置Session这样就导致了点击LinkButton按键后用户控件内容没有及时更新,在下一次页面刷新后才能看到上一次更新的内容~~~请问我想要的处理过程可能实现吗?如果不能实现请问如何在点击按钮后刷新页面? 
解决:1.PageLoad中动态加载控件,并在MapMenuItem_Click中重新new一下这个用户控件即可。       
            2.在MapMenuItem_Click中写入Response.Redirect("Template_Second.aspx"),这样虽然可以实现但是由于重新创建了页面,增加了负荷,浪费了资源降低了效率。

5.问题:构造函数中使用页面控件时报告错误而在Page_Load使用就正常。 
解决:这是因为页面上的控件在Page_Load以前没有加载,因此不能再Page_Load以前使用,最好的办法是尽量做到控件调用与控件所用到的数据分离,这样就可以用户在构造函数中初始化控件数据, 在Page_Load中根据数据调用控件方法,间接实现控件在构造函数中初始化

6.问题: 建立了一个根据数据库生成卡片的DataList模板,DataList内有一个ImageButton,该控件的ImageUrl始终指向同一个图片(查看.jpg),模板中的其他控件绑定数据源。请问如何区分由该模版产生的卡片中的控件?比如我点击某一个卡片中的"查看"按钮(ImageButton),如何判断该        按钮属于第几个卡片? 
解决:       (1)int intRowIndex=0;
                    public int RowIndex() 
                    {
                        return intRowIndex++;
                    }        //****在前台调用 <inpt id="ID" type="hidden" value='<%=RowIndex()%>' runat="server"/>      
               (2)上面前后台配合的方法虽然可以实现,但是比较繁琐,其实可以在ItemDataBound事件中实现, ItemDataBound事件在数据项绑定时实现,每根据模版和数据源生成一个项则被触发一次,这样声明一个private int intRowIndex=0,然后在ItemDataBound事件处理函数中让这个变量增1   并赋值给DataList内部控件的CommandName中,然后双击处在编辑状态的DataList中的控件生   成单击事件,在该事件处理函数中判断CommandName中的内容然实现控件的判别。

7.问题:ValidationEventArgs类在那里。
 解决:System.Xml.Schema

8.问题:在使用ASP.NET为Text字段写入数据的时候,由于在建立数据结构时候系统自动规定长度为16的误导,导致在写程序时写成sqlParam = new SqlParameter("@Introduct", SqlDbType.Text, 16);这样程序只能写入16个字符  解决:text字段的长度在建立数据库结构时给出的是底线,数据库管理系统会根据查询程序而改变text长度,因此为了显示所有程序需要写成:sqlParam = new SqlParameter("@Introduct", SqlDbType.Text, YourString.Lenght);
9.问题:string类中对象的Replace方法的用法 。
    解决:string sTest="wuchunlei" sTest=sTest.Replace("ch","ab");  

 
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值