Asp.Net常见问题及技术实现方案(一)
来源:互联网 发布:涉及大数据的上市公司 编辑:程序博客网 时间:2024/06/10 01:30
最近在学Asp.net,常常被一些鸡毛蒜皮的小错误小问题搞得焦头烂额,情急之下把所碰到的问题既解决办法,还有一些技术实现方案记录下来,已被日后查看,今天整理了一部分,和大家分享(老手免看,看了也不要笑话我),后面我会陆续贴出来。主要是希望:1给自己增加点印象,学得更深些。2为和我一样菜的新手们提供点帮助,少走弯路。
1.gridview 找不到数据源中字段?
答:看绑定数据时,字段是否与sql语句一致
2.System.IndexOutOfRangeException: There is no row at position 0.
答:datatable 中没有数据
3.select语句中存在a.name,b.pwd,时,数据绑定时报没有数据错误
答:数据绑定时,要写name,pwd, 前面不能加a.或b.
4.postbackurl作用
答:将本页内容全部提交到目标页,与transfer作用相近
5.form 提交方法
答:1.用action直接写;
2.用javascript脚本写,例:
<script>function navi()
{
if(radio1.checked)
form1.action="1.aspx";
else form1.action="2.aspx";
form1.submit;
}
6.编码问题(国际化):例url中有中文时,提交出现问题
答:web.config文件中<gloablization responseEncoding="GB2312"
requestEncoding="GB2312"></gloablelization>该工程所
有请求和响应的编码都为GB2312
7.Gridview为空时怎样只显示表头
答:解决:加一行
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
//数据绑定
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (e.Row.Cells[0].Text == " ") // GridView中//没有数据只显示GridView的头部
{
e.Row.Visible = false; //服务器不向客户端发送控//件的信息
return;
}
}
}
8.指令作用 例:<!--#include -->
答:在编译之前进行一定处理,并不参与编译
9.每个folder下都可以放web.config文件,搜索路径从本
文件夹向跟搜索,若没有就调用机器的web.config
10.关于换皮肤
答:第一步:App_Themes中添加主题文件夹HotSummer,在主题文件夹下添加.skin文件,设置控件皮肤,例:
<asp:Label runat="server" "BackColor="LightGreen">
<asp:Label runat="server"SkinId="sk1"BackColor="LightGreen">
同时在响应.aspx文件控件的skinId属性中输入sk1(不输入时默认没有ID的皮肤效果)。
第二步:法一:在web.config文件中配置皮肤,例:
<pages theme="HotSummer"/> (HotSummer是主题文件夹名)
第二步:法二:通过页面.aspx.cs 中的PreInit方法设置主体文件,例:
protected void Page_PreInit(object sender, EventArgs e)
{
this.Theme = "HotSummer";
}
11.保持状态解决八法
答:Asp.net状态解决方式:
客户端:试图状态,控件状态,隐藏域,cookie,查询字符串
服务器:应用程序状态(Application)会话状态(Session)配置文件属性(Profile)
12.GridView分页显示_之_数据绑定
答:1.设置AllowPaging=true;
PagerSetting 中的mode,还有PageSize
2.在.aspx.cs中用PageIndexChanging方法,对翻页后的数据重新绑定,例
protected void EList_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
EList.PageIndex = e.NewPageIndex;
bingdata();
}
private void bingdata()
{
DataTable dt = new SQLOperator().SelectToDataTable("select * from employeeinfo");
EList.DataSource = dt;
EList.DataBind();
}
13.GridView分页显示_之_选中本页
对Button操作,使本页所有checkbox都选中,并保存状态,同时将所得数据结果存入隐藏域中
答:
protected void btnThisAllSelect_Click(object sender, EventArgs e)
{//选中本页checkbox的所有选项
StringBuilder eids = new StringBuilder() ;
foreach (GridViewRow row in EList.Rows)
{
if (row.RowType == DataControlRowType.DataRow)
{
CheckBox cb = row.FindControl("cbDelete") as CheckBox;
if (cb.Checked == true) { }
else //若原来为选中,则致为选中状态
{
cb.Checked = true;
eids.Append(row.Cells[1].Text);
eids.Append("$");
}
}
}
hfID.Value += eids.ToString();//写入隐藏域
}
14.GridView分页显示_之_选中所有
对Button操作,使所有页面中所有checkbox都选中,并保存状态,同时将所得数据结果存入隐藏域中
答:protected void btSelectAll_Click(object sender, EventArgs e)
{//将GridView中所有页面的checkbox都选中,并将结果存入隐藏域
StringBuilder eids = new StringBuilder();
for (int i=0;i<EList.PageCount;i++)
{
EList.PageIndex = i;//重新绑定每页数据
bingdata();
foreach (GridViewRow row in EList.Rows)
{
if (row.RowType == DataControlRowType.DataRow)
{
CheckBox cb = row.FindControl("cbDelete") as CheckBox;
cb.Checked = true;//将各页checkbox置为选中状态
eids.Append(row.Cells[1].Text);
eids.Append("$");
}
}
}
hfID.Value = eids.ToString();//附值隐藏域
}
15.GridView分页显示_之_分页选择
对checkbox操作,使在不同页面选中的checkbox都保持状态,同时将所得数据结果存入隐藏域
答:
***********下面为.aspx.cs中代码
protected void EList_RowDataBound(object sender, GridViewRowEventArgs e)//行绑定方法
{
if (e.Row.RowType == DataControlRowType.DataRow)
{//判断是否数据行
/***这里可加其他代码***/
DataRowView drv=e.Row.DataItem as DataRowView;
string eid=drv["eid"].ToString().Trim();
CheckBox cbdelete = e.Row.FindControl("cbDelete") as CheckBox; cbdelete.Attributes.Add("onclick","savetohf(this.checked,'"+eid+"')");//出发前台javascript方法,进行隐藏域附值
if (this.hfID.Value.IndexOf(eid) != -1)
{//加载页时附checkbox初值
cbdelete.Checked = true;
}
}
}
***************下面为javascript代码
<script language='javascript' type="text/javascript">
function savetohf(ischecked,pid)
{
var myselect=document.form1.hfID.value;
if(myselect.indexOf(pid)==-1){
myselect+=pid+"$";
}
else{
myselect=myselect.replace(pid+"$","");
}
document.form1.hfID.value=myselect;
}
</script>
16.应用程序文件Application相关问题
答:Add New Item,Global Application Class文件,
Application_Start方法在服务器启动时触发,
Session_Start方法在用户发出第一个请求时触发
这些方法中可放入一些使用频率很高的对象或变量
- Asp.Net常见问题及技术实现方案(一)
- asp.net 开发常见问题及解决方法(一)
- ASP.NET技术中常见问题详细解答及代码
- 庖丁解牛-Asp.net 3.5控件和组件开发技术一常见问题及书中问题纠正贴
- asp.net常见问题及解决方法
- asp.net gridview实现正在加载效果方案一
- ASP.NET無法啟動解決方案一
- ASP.NET Session详解及常见问题处理
- 调试Asp.net常见问题及解决方法
- ASP.NET Session详解及常见问题处理
- Asp.net MVC Razor常见问题及解决方法
- ASP.NET 2.0 实现静态页技术一
- ASP.NET的缓存机制及技术实现
- ASP.NET应用程序的安全方案(一)—身份验证
- ASP.NET应用程序的安全方案(一)—身份验证
- ASP.NET应用程序的安全方案(一)
- ASP.NET应用程序的安全方案(一)—身份验证
- ASP.NET应用程序的安全方案(一)—身份验证
- Comparable排序
- "Illegal group reference"异常的分析
- C#3.0 automatic properties
- Series 60 3rd上绘图时设置字体的大小
- 生命的价值
- Asp.Net常见问题及技术实现方案(一)
- 何去何从-------------大家给个建议吧
- WebService介绍(一):创建WebService
- 无题
- Open XML API 之 Hello World
- squid的文件描述符
- Linux攻略 DNS服务器安装配置方法详细介绍
- c#面试题
- 先装.net framework后装IIS 或者用于运行 ASP.NET 的进程帐户必须具有对 IIS 元数据库(如 IIS://servername/W3SVC)的读访问权。