Fork me on GitHub

关于卢老师思修项目的问题集锦

1.本项目用vs2005+sql2005,我本机只有sql2000,附加肯定失败!

解决办法:用vs安装sql2005EXPRESS版。开启数据库服务,修改的连接字符串。

sql2005的连接字符串:<add name="LocalSqlServer" connectionString="Data Source=.;Database=DWCourse;User ID=sa;Password=" providerName="System.Data.SqlClient" />
sql2005EXPR的连接字符串:  <add name="LocalSqlServer" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\DWCourse.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"
   providerName="System.Data.SqlClient" />

(用gridview自动绑定,然后在web.config中查找方法)

 

2.自定义登陆控件不能横向置顶。

解决办法:卢老师在LoginView中使用的是HTML标记下的TABLE,不能很好的给 <AnonymousTemplate>模板布局。选用.net下的TABLE,利用<asp:TableRow>和<asp:TableCell>能有效的解决这个问题。

 

3.交流中心开发的问题:

3.1 gridview中找索引问题。

(描述:无法找到控件当前所在行,若用绑定主键的办法,行号和ID并不是一致的)

解决办法:只能用GridView中RowDataBound来找到控件(而且只能是Button),利用Button的CommandArgument属性来索引所在行。具体代码:

Button btn = (Button)e.Row.Cells[0].FindControl("btn_Reply");
btn.CommandArgument = e.Row.RowIndex.ToString();

即使这样仍然有问题,同样无法找到控件,必须加:

 if (e.Row.RowType == DataControlRowType.DataRow)
        {

        }

再在RowCommand中通过button的CommandName和CommandArgument来找,具体代码:
        if (e.CommandName == "Reply")
        {
            int index = Convert.ToInt32(e.CommandArgument);
            TextBox box = (TextBox)GVMsg.Rows[index].FindControl("txt_Reply");
            box.Visible = true;

        }

如果还要得到主键Id,可通过在GridView中用Lable绑定主键Id, 继续通过索引来找对应行的控件,具体代码如下:

 Label lab =(Label)GVMsg.Rows[index].Controls[0].FindControl("MsgId");

int MsgId = Convert.ToInt32(lab.Text);

以上代码在VV2008+sql2005下调试完成,所有控件在   <ItemTemplate></ItemTemplate>中。GVMsg为GridView的Id值。

 

4.ODS对象为空的问题

VS2005转到2008下,ODS绑定对象为空,即使以前绑定的,也会报程序集出错的问题。

但是,在web.config下也找不到出错的程序集,苦恼了几天。

后来想到个办法,将bin文件夹删除重建,重新编译,问题解决!太爽了。

 

5.ODS对象再次为空的问题

VS2005转到2008下,如果选择了转为.net 3.5,也会出现ODS绑定对象为空,即使以前绑定的,也会报程序集出错的问题。从程序集入手没这技术。
这次问题更蹊跷,我在硬盘打开工程,程序集出错,但是同样的工程在u盘却没有错误,重现删除硬盘的工程,从U盘拷贝过去还是同样的问题。这就很奇怪了。
几次拷贝无效之后,怀疑是自己在初次打开的时候转为了3.5.而自己没注意。但是拷贝过去的也没有弹出提示框。
于是换到别的位置,不转3.5,成功!
猜想:vs记录了你打开的工程的路径,然后它会沿用上次你的设置,所以,我在u盘上打开工程就没问题,拷到那个相同目录就出问题。

posted @ 2010-01-26 11:45  idoku  阅读(232)  评论(0编辑  收藏  举报