dropdownlist绑定数据后,进行插入数据错误

ibilly77 2012-04-18 03:42:59
现已将两个dropdownlist关联,选中第一个dropdownlist表示一个大类进行选择后,第二个dropdownlist会显示出第一个的相应子类。但是插入操作时,第二个dropdownlist中插入的数据永远都是子类中的第一个数据,我想了好久都没有明白,望高人指点。
以下是源码

关键问题是:(第一个dropdownlist是ddlclass,第二个dropdownlist是ddldevice),ddlclass是设备的大类别,ddldevice是设备的编号,选中大类别后再去选择编号,但是插入的设备编号却永远是排在一个个的编号,而非选中的编号


前台:


后台代码
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Xml.Linq;
using System.Data.SqlClient;
namespace ServiceDesk.SD
{
public partial class sduseless : System.Web.UI.Page
{
// 定义连接字符串
private static string strCon = System.Configuration.ConfigurationManager.AppSettings["connStr"];
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//绑定ddlclass
SqlConnection con = new SqlConnection(strCon);
con.Open();
SqlCommand cmd = new SqlCommand("select * from class ", con);
SqlDataReader reader = cmd.ExecuteReader();
ddlclass.DataSource = reader;
ddlclass.DataTextField = "classname";
ddlclass.DataValueField = "classno";
ddlclass.DataBind();
reader.Close();

//绑定ddldevice
SqlCommand cmd2 = new SqlCommand("select * from deviceinfo where classno=" + this.ddlclass.SelectedValue, con);
reader = cmd2.ExecuteReader();//上面定义过reader,这里就不用从新定义
ddldevice.DataSource = reader;
ddldevice.DataTextField = "deviceno";
ddldevice.DataValueField = "classno";
ddldevice.DataBind();
reader.Close();
}
}
// 验证用户名
private bool blnCheckUser()
{
// 数据库连接
SqlConnection objConnection = new SqlConnection(strCon);
// 数据库命令
SqlCommand objCommand = new SqlCommand("", objConnection);
// 设置Sql语句
objCommand.CommandText =
" SELECT userno FROM USERS WHERE userno = @user";
// 设置Sql语句参数
objCommand.Parameters.Add("user", SqlDbType.VarChar);
// Sql语句参数赋值
objCommand.Parameters["user"].Value = txtuserno.Text.Trim();

try
{
// 打开数据库连接
if (objConnection.State == ConnectionState.Closed) objConnection.Open();
// 获取运行结果
SqlDataReader result = objCommand.ExecuteReader();
if (result.Read() == false)
{
lblCheck.Visible = true;
return false;
}
else
{
lblCheck.Visible = false;
return true;
}
}
catch (SqlException exp)
{
Session["Error"] = exp.Message;
Response.Redirect("Error.aspx");

return false;
}
finally
{
// 关闭数据库连接
if (objConnection.State == ConnectionState.Open) objConnection.Close();
}
}
protected void ddlclass_SelectedIndexChanged(object sender, EventArgs e)
{
//ddlclass与ddldevice数据绑定的联动性
string code = this.ddlclass.SelectedValue;
SqlConnection con = new SqlConnection(strCon);
con.Open();
SqlCommand cmd = new SqlCommand("select * from deviceinfo where classno=" + code, con);
SqlDataReader reader = cmd.ExecuteReader();
this.ddldevice.DataSource = reader;
this.ddldevice.DataTextField = "deviceno";
this.ddldevice.DataValueField = "classno";
this.ddldevice.DataBind();
reader.Close();
con.Close();
}
protected void btnRegion_Click(object sender, EventArgs e)
{
if (blnCheckUser() == false) return;

// 数据库连接
SqlConnection conn = new SqlConnection(strCon);
// 数据库命令
SqlCommand objCommand = new SqlCommand("", conn);
// 设置Sql语句
objCommand.CommandText =
"insert INTO uselesslist (userno, classno, deviceno)" +
"values (@userno,@classno,@deviceno) ";

// 设置Sql语句参数
objCommand.Parameters.Add("userno", SqlDbType.VarChar);
objCommand.Parameters.Add("classno", SqlDbType.VarChar);
objCommand.Parameters.Add("deviceno", SqlDbType.VarChar);

// Sql语句参数赋值
objCommand.Parameters["userno"].Value = txtuserno.Text.Trim();
objCommand.Parameters["classno"].Value = ddlclass.Text.Trim();
objCommand.Parameters["deviceno"].Value = ddldevice.SelectedItem.ToString();
try
{
// 打开数据库连接
if (conn.State == ConnectionState.Closed) conn.Open();
// 插入数据
objCommand.ExecuteNonQuery();
}
catch (SqlException exp)
{
Session["Error"] = exp.Message;
Response.Redirect("Error.aspx");
}
finally
{
// 关闭数据库连接
if (conn.State == ConnectionState.Open) conn.Close();
}
Response.Redirect("2.aspx");
}
protected void btnClear_Click(object sender, EventArgs e)
{
txtuserno.Text = "";

}
}
}

...全文
357 29 打赏 收藏 转发到动态 举报
写回复
用AI写文章
29 条回复
切换为时间正序
请发表友善的回复…
发表回复
ibilly77 2012-04-19
  • 打赏
  • 举报
回复
[Quote=引用 28 楼 的回复:]

引用 23 楼 的回复:

是不是因为我在绑定之后没有去取ddldevice的值,所以导致ddldevice插入的时候一直插入的是第一个值?


绑定之后,取值之前,只要没有对页面进行回发刷新就会取到你所选的值,检查你的代码吧,会不会是别的地方的操作对页面进行刷新了
[/Quote]

谢谢了,问题解决了。原来是我一时手贱,在某个不经意的地方已经指定了ddl的值,却一直没有发现。
反倒是一直在纠结绑定的问题。
总之谢谢各位的热情帮助了,小弟不胜感激。
  • 打赏
  • 举报
回复
[Quote=引用 23 楼 的回复:]

是不是因为我在绑定之后没有去取ddldevice的值,所以导致ddldevice插入的时候一直插入的是第一个值?
[/Quote]

绑定之后,取值之前,只要没有对页面进行回发刷新就会取到你所选的值,检查你的代码吧,会不会是别的地方的操作对页面进行刷新了
烟波钓 2012-04-19
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 的回复:]

C# code

//若是需要这些类别的ID就是这样
objCommand.Parameters["classno"].Value = ddlclass.SelectedValue;
objCommand.Parameters["deviceno"].Value = ddldevice.SelectedValue;
//若是需要这些类别的名称就是这样
objCommand.Paramet……
[/Quote]

你调试的时候 跟跟这两个东西是啥
CalvinR 2012-04-18
  • 打赏
  • 举报
回复
我觉得你就是在做一个联动的效果



public void ddlDepartName_SelectedIndexChanged(object sender, EventArgs e)
{
DataTable dt = new DataTable();
SqlDataAdapter adpt = new SqlDataAdapter("SELECT e.EmpId,e.[EmpName],D.[DepartId],D.[DepartName],w.[BaseID],w.[PaymentBase], w.[PensionBase], w.[FertilityBase], w.[MedicalBase] FROM [Crm_Employee] e LEFT outer JOIN [Crm_WagePaymentBase] w on e.EmpId=w.EmpID LEFT outer JOIN Crm_Depart D ON D.DepartId=e.DepartId WHERE D.Departid=N'" + ((DropDownList)gvWageBase.HeaderRow.Cells[0].FindControl("ddlDepart")).SelectedValue + "'", connectionString);

dt.Clear();
adpt.Fill(dt);

gvWageBase.DataSource = dt;
gvWageBase.DataBind();
}

你考虑用下红色部分的事件

ibilly77 2012-04-18
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 的回复:]

C# code
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
zh.BLL.BLLSell sell = new zh.BLL.BLLSell();
DataSet ds = new DataSet(……
[/Quote]

我的确是绑定了第一个之后,再绑定了第二个ddl,但是却为什么取不到第二个ddl选的值,只有ddldevice中第一项的值。。。很是不解。。。望高人指点一下,我这个值该怎么取得
ibilly77 2012-04-18
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 的回复:]

C# code
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
zh.BLL.BLLSell sell = new zh.BLL.BLLSell();
DataSet ds = new DataSet(……
[/Quote]


protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//绑定ddlclass
SqlConnection con = new SqlConnection(strCon);
con.Open();
SqlCommand cmd = new SqlCommand("select * from class ", con);
SqlDataReader reader = cmd.ExecuteReader();
ddlclass.DataSource = reader;
ddlclass.DataTextField = "classname";
ddlclass.DataValueField = "classno";
ddlclass.DataBind();
reader.Close();

//绑定ddldevice
SqlCommand cmd2 = new SqlCommand("select * from deviceinfo where classno=" + this.ddlclass.SelectedValue, con);
reader = cmd2.ExecuteReader();//上面定义过reader,这里就不用从新定义
ddldevice.DataSource = reader;
ddldevice.DataTextField = "deviceno";
ddldevice.DataValueField = "classno";
ddldevice.DataBind();
reader.Close();
string b = this.ddldevice.SelectedItem.ToString();
}
}

protected void ddlclass_SelectedIndexChanged(object sender, EventArgs e)
{
//ddlclass与ddldevice数据绑定的联动性
string code = this.ddlclass.SelectedValue;
string a = this.ddldevice.SelectedItem.ToString ();
SqlConnection con = new SqlConnection(strCon);
con.Open();
SqlCommand cmd = new SqlCommand("select * from deviceinfo where classno=" + code, con);
SqlDataReader reader = cmd.ExecuteReader();
this.ddldevice.DataSource = reader;
this.ddldevice.DataTextField = "deviceno";
this.ddldevice.DataValueField = "classno";
this.ddldevice.DataBind();
reader.Close();
con.Close();
}


是不是因为我在绑定之后没有去取ddldevice的值,所以导致ddldevice插入的时候一直插入的是第一个值?
gates987 2012-04-18
  • 打赏
  • 举报
回复
向大大们学习
  • 打赏
  • 举报
回复
   protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
zh.BLL.BLLSell sell = new zh.BLL.BLLSell();
DataSet ds = new DataSet();
ds = sell.GetList(" recid<100");
ddlclass.DataSource = ds;
ddlclass.DataTextField = "Sellid";
ddlclass.DataValueField = "recid";
ddlclass.DataBind();
}
}

这里只绑定 第一个ddl,改变选项 再去绑定第二个
  • 打赏
  • 举报
回复
 
//下班给你测试了下,没问题,LZ还是仔细检查下吧
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
zh.BLL.BLLSell sell = new zh.BLL.BLLSell();
DataSet ds = new DataSet();
ds = sell.GetList(" recid<100");
ddlclass.DataSource = ds;
ddlclass.DataTextField = "Sellid";
ddlclass.DataValueField = "recid";
ddlclass.DataBind();

zh.BLL.BLLSellDetail sellse = new zh.BLL.BLLSellDetail();
DataSet dss = new DataSet();
dss = sellse.GetList(" sellid='" + ddlclass.SelectedItem.Text + "'");

this.ddldevice.DataSource = dss;
this.ddldevice.DataTextField = "goodsname";
this.ddldevice.DataValueField = "recid";
this.ddldevice.DataBind();
}
}
protected void ddlclass_SelectedIndexChanged(object sender, EventArgs e)
{
zh.BLL.BLLSellDetail sellse = new zh.BLL.BLLSellDetail();
DataSet dss = new DataSet();
dss = sellse.GetList(" sellid='" + ddlclass.SelectedItem.Text + "'");

this.ddldevice.DataSource = dss;
this.ddldevice.DataTextField = "goodsname";
this.ddldevice.DataValueField = "recid";
this.ddldevice.DataBind();

}
protected void btnRegion_Click(object sender, EventArgs e)
{
string aaaa = ddldevice.SelectedItem.Text.ToString();//这里取到的值是所选泽的
}

ibilly77 2012-04-18
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 的回复:]

页面上加上 name= "ddldevice"
然后后台 request.form["ddldevice"]
如果需要ajax联动的建议楼主去下载 .net省市县三级联动下拉菜单(含数据)
http://download.csdn.net/detail/ytmf007/3965440
[/Quote]

第二个取到的是dropdownlist中第一个值,不知道为什么,并非是选中的值
虫子007 2012-04-18
  • 打赏
  • 举报
回复
SqlCommand cmd = new SqlCommand("select * from deviceinfo where classno=" + code, con);
SqlDataReader reader = cmd.ExecuteReader();
this.ddldevice.DataSource = reader;
this.ddldevice.DataTextField = "deviceno";
this.ddldevice.DataValueField = "classno";
this.ddldevice.DataBind();
reader.Close();

这块这样写是不行的
你这样只是在给一个选项赋值,永远没有多加出 有多少选项来! 下面的是我写的, 你可以借鉴一下!

this.ddl_chengshi.Items.Clear();
this.ddl_chengshi.Items.Insert(0, "--所有城市--"); //这是默认选项
DataTable chengshiList = NeirongService.GetAllChengshi(this.ddl_shengfen.SelectedValue, 2); //这是 根据上一个下拉列表得到第二个列表值的集合
if (chengshiList != null && chengshiList.Rows.Count > 0) //循环加入
{
for (int i = 0; i < chengshiList.Rows.Count; i++)
{
if (chengshiList.Rows[i]["chengshi"] != null && Convert.ToString(chengshiList.Rows[i]["chengshi"]) != "")
{
ListItem item = new ListItem(Convert.ToString(chengshiList.Rows[i]["chengshi"]), Convert.ToString(chengshiList.Rows[i]["chengshi"]));
this.ddl_chengshi.Items.Add(item);
}
}
}
  • 打赏
  • 举报
回复
或者 datatable,
dagadgag 2012-04-18
  • 打赏
  • 举报
回复
autopostback
要联动必须用到这属性
  • 打赏
  • 举报
回复
SqlDataReader reader = cmd.ExecuteReader();
this.ddldevice.DataSource = reader;
this.ddldevice.DataTextField = "deviceno";
你这个数据源不合适吧,应该是DataSet
烟波钓 2012-04-18
  • 打赏
  • 举报
回复

//若是需要这些类别的ID就是这样
objCommand.Parameters["classno"].Value = ddlclass.SelectedValue;
objCommand.Parameters["deviceno"].Value = ddldevice.SelectedValue;
//若是需要这些类别的名称就是这样
objCommand.Parameters["classno"].Value = ddlclass.SelectedText;
objCommand.Parameters["deviceno"].Value = ddldevice.SelectedText;
孟子E章 2012-04-18
  • 打赏
  • 举报
回复
SqlCommand cmd2 = new SqlCommand("select * from deviceinfo where classno=" + this.ddlclass.SelectedValue, con);

你这里ddlclass还没选择呢你就使用SelectedValue了啊?
你应该在DropDownList1_SelectedIndexChanged里面给ddldevice赋值
bu在服务区 2012-04-18
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

ddldevice.SelectedItem.ToString();

你这是取的什么呢, text 还是 value??
[/Quote]

在这一行打断点。。看看它拿到的值是什么~~~~
zllllz6 2012-04-18
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]

引用 1 楼 的回复:

我表示没懂起你在描述神马````


主要功能是将两个ddl联动后插入数据,但是第二个ddl插入的数据总不是选中的数据,而是数据表的第一个数据
[/Quote]
断点调试````我估计你应该是第2个 取错值了 断点一下看看到底取的是什么
那一抹嫣红 2012-04-18
  • 打赏
  • 举报
回复
页面上加上 name= "ddldevice"
然后后台 request.form["ddldevice"]
如果需要ajax联动的建议楼主去下载 .net省市县三级联动下拉菜单(含数据)
http://download.csdn.net/detail/ytmf007/3965440
ibilly77 2012-04-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

我表示没懂起你在描述神马````
[/Quote]

主要功能是将两个ddl联动后插入数据,但是第二个ddl插入的数据总不是选中的数据,而是数据表的第一个数据
加载更多回复(8)
asp.net 4揭秘.第1卷》 第一部分 构建asp.net页面 第1章 asp.net framework概览2 1.1 asp.net和.net framework5 1.1.1 框架类库5 1.1.2 公共语言运行库10 1.2 asp.net控件11 1.2.1 asp.net控件概览11 1.2.2 html控件12 1.2.3 理解和处理控件事件13 1.2.4 视图状态18 1.3 asp.net页面22 1.3.1 动态编译23 1.3.2 控件树25 1.3.3 使用代码隐藏页面27 1.3.4 处理页面事件30 1.3.5 使用page.ispostback属性32 1.3.6 调试和跟踪asp.net页面33 1.3.7 跟踪页面执行36 1.4 安装asp.net38 .1.5 小结40 第2章 使用标准控件41 2.1 显示信息41 2.1.1 使用label控件41 2.1.2 使用literal控件45 2.2 接收用户输入48 2.2.1 使用textbox控件48 2.2.2 使用checkbox控件54 2.2.3 使用radiobutton控件57 2.3 提交表单数据60 2.3.1 使用button控件61 2.3.2 使用linkbutton控件62 2.3.3 使用imagebutton控件65 2.3.4 button控件使用客户端脚本68 2.3.5 执行跨页面发送70 2.3.6 指默认按钮73 2.3.7 处理command事件74 2.4 显示图像77 2.4.1 使用image控件77 2.4.2 使用imagemap控件78 2.5 使用panel控件82 2.6 使用hyperlink控件87 2.7 小结89 第3章 使用验证控件90 3.1 验证控件概述90 3.1.1 验证控件与javascript93 3.1.2 使用page.isvalid94 3.1.3 设置display属性94 3.1.4 突出显示验证错误95 3.1.5 使用验证组99 3.1.6 禁用验证103 3.2 使用requiredfieldvalidator控件104 3.3 使用rangevalidator控件108 3.4 使用comparevalidator控件109 3.5 使用regularexpressionvalidator控件114 3.6 使用customvalidator控件116 3.7 使用validationsummary控件122 3.8 创建自义验证控件126 3.8.1 创建lengthvalidator控件127 3.8.2 创建ajaxvalidator控件129 3.9 小结134 第4章 使用rich控件135 4.1 接收上传文件135 4.1.1 把文件保存到文件系统136 4.1.2 把文件保存到数据库139 4.1.3 上传大文件142 4.2 显示日历147 4.2.1 创建弹出式日期选择器150 4.2.2 根据数据库表呈现日历152 4.3 显示广告156 4.3.1 在xml文件中保存广告157 4.3.2 在数据库表中存储广告160 4.3.3 跟踪显示和转到161 4.4 显示不同的页面视图166 4.4.1 显示选项卡式页面视图166 4.4.2 显示多部分表单168 4.5 显示向导170 4.6 显示silverlight内容174 4.7 小结177 第二部分 设计asp.net网站 第5章 使用母版页设计网站180 5.1 创建母版页180 5.1.1 创建默认内容183 5.1.2 嵌套母版页186 5.1.3 在母版页中使用图片和超链接191 5.1.4 在web配置文件中注册母版页193 5.2 修改母版页内容194 5.2.1 使用title属性194 5.2.2 使用page.header属性194 5.2.3 暴露母版页属性196 5.2.4 对母版页使用findcontrol方法198 5.3 动态加载母版页200 5.4 小结203 第6章 使用主题设计网站204 6.1 创建主题204 6.2 在主题中添加皮肤205 6.2.1 创建命名皮肤206 6.2.2 theme与stylesheetthemes208 6.2.3 禁用主题209 6.2.4 在web配置文件中注册主题211 6.3 在主题中添加css212 6.3.1 在主题中添加多个css215 6.3.2 使用css改变页面布局215 6.4 创建全局主题219 6.5 动态应用主题220 6.6 小结225 第7章 使用用户控件创建制控件226 7.1 创建用户控件226 7.1.1 在web配置文件中注册用户控件228 7.1.2 暴露用户控件的属性229 7.1.3 暴露用户控件的事件231 7.1.4 创建addressform控件235 7.2 ajax和用户控件240 7.3 动态加载用户控件242 7.3.1 使用引用指令243 7.3.2 创建多页面向导247 7.4 小结254 第三部分 数据访问 第8章 数据访问概述256 8.1 使用databound控件256 8.1.1 使用列表控件256 8.1.2 使用表格式databound控件259 8.1.3 使用层次databound控件262 8.1.4 使用其他数据控件264 8.2 使用datasource控件266 8.3 使用编程式数据270 8.4 模板和数据表达式272 8.4.1 使用模板272 8.4.2 使用数据表达式275 8.4.3 使用双向数据表达式278 8.5 sql server 2008 express概述280 8.5.1 sql server express 特性280 8.5.2 sql server 2008 express管理工具281 8.5.3 服务器端数据库与本地数据库282 8.6 数据库驱动的web应用程序示例284 8.7 小结287 第9章 使用sqldatasource控件288 9.1 创建数据库连接289 9.1.1 连接到microsoft sql server289 9.1.2 连接到其他数据库292 9.1.3 在web配置文件中保存连接字符串293 9.1.4 对连接字符串加密294 9.2 执行数据库命令296 9.2.1 执行内联sql语句296 9.2.2 执行存储过程298 9.2.3 过滤数据库行300 9.2.4 改变数据源模型302 9.2.5 处理sql命令执行错误303 9.2.6 取消sql命令执行306 9.3 在sqldatasource控件中使用asp.net参数308 9.3.1 使用asp.net参数对象308 9.3.2 使用asp.net的controlparameter对象311 9.3.3 使用asp.net的cookieparameter对象315 9.3.4 使用asp.net的formparameter对象317 9.3.5 使用asp.net的profileparameter对象319 9.3.6 使用querystringparameter对象320 9.3.7 使用sessionparameter对象322 9.4 通过程序执行sqldatasource命令323 9.4.1 添加ado.net参数324 9.4.2 执行insert、update和delete命令325 9.4.3 执行select命令327 9.5 使用sqldatasource控件缓存数据数据330 9.6 小结332 第10章 使用列表控件333 10.1 列表控件概述333 10.1.1 声明列表项333 10.1.2 数据源335 10.1.3 确被选中的列表项338 10.1.4 追加数据项342 10.1.5 启用自动回传343 10.1.6 使用列表项集合345 10.2 使用dropdownlist控件348 10.3 使用radiobuttonlist控件350 10.4 使用listbox控件351 10.5 使用checkboxlist控件355 10.6 使用bulletedlist控件357 10.7 创建自义的列表控件361 10.8 小结368 第11章 使用gridview控件369 11.1 gridview控件基础369 11.1.1 显示数据369 11.1.2 选择数据372 11.1.3 使用数据键374 11.1.4 数据排序376 11.1.5 数据分页381 11.1.6 编辑数据388 11.1.7 显示空数据391 11.1.8 格式化gridview控件395 11.1.9 在gridview控件中使用viewstate397 11.2 在gridview控件中使用字段398 11.2.1 使用boundfield398 11.2.2 使用checkboxfield401 11.2.3 使用commandfield402 11.2.4 使用buttonfield404 11.2.5 使用hyperlinkfield407 11.2.6 使用imagefield411 11.2.7 使用templatefield414 11.3 gridview控件的事件417 11.3.1 突出显示gridview行417 11.3.2 显示列汇总419 11.3.3 显示嵌套的主从表单421 11.4 扩展gridview控件424 11.4.1 创建长文本字段424 11.4.2 创建删除按钮字段428 11.4.3 创建验证字段430 11.5 小结432 第12章 使用detailsview控件和formview控件433 12.1 使用detailsview控件433 12.1.1 使用detailsview控件显示数据433 12.1.2 在detailsview控件中使用字段436 12.1.3 使用detailsview控件显示空数据437 12.1.4 使用detailsview控件对数据分页439 12.1.5 使用detailsview控件更新数据445 12.1.6 使用detailsview控件插入数据452 12.1.7 使用detailsview控件删除数据455 12.1.8 detailsview控件的事件456 12.1.9 格式化detailsview控件459 12.2 使用formview控件461 12.2.1 使用formview控件显示数据461 12.2.2 使用formview控件对数据分页463 12.2.3 使用formview控件编辑数据467 12.2.4 使用formview控件插入数据470 12.2.5 使用formview控件删除数据473 12.3 小结475 第13章 使用repeater控件和datalist控件476 13.1 使用repeater控件476 13.1.1 使用repeater控件显示数据476 13.1.2 在repeater控件中使用模板479 13.1.3 repeater控件的事件处理484 13.2 使用datalist控件490 13.2.1 使用datalist控件显示数据490 13.2.2 在多列中显示数据492 13.2.3 在datalist控件中使用模板494 13.2.4 使用datalist控件选择数据496 13.2.5 使用datalist控件编辑数据499 13.2.6 格式化datalist控件503 13.3 小结505 第14章 使用listview和datapager控件506 14.1 使用listview控件506 14.1.1 使用layouttemplate和itemtemplate507 14.1.2 使用grouptemplate510 14.1.3 选择一行512 14.1.4 数据数据排序515 14.1.5 编辑数据数据516 14.2 使用datapager控件522 14.2.1 创建自义分页用户界面524 14.2.2 使用datapager控件进行数据源分页526 14.3 小结527 第15章 使用chart控件528 15.1 chart控件的基础知识528 15.1.1 使用chart控件显示数据528 15.1.2 排序和过滤数据532 15.1.3 统计公式534 15.2 制图表的外观539 15.2.1 制背景和绘图区540 15.2.2 3d图表543 15.3 多级报告543 15.4 小结544 第16章 使用queryextender控件545 16.1 queryextender控件介绍545 16.2 使用声明性语法查询数据545 16.2.1 使用controlfilter- expression进行查询545 16.2.2 使用customexpression进行查询546 16.2.3 使用dynamicfilter- expression进行查询546 16.2.4 使用methodexpression进行查询546 16.2.5 使用orderbyexpression进行排序547 16.2.6 使用propertyexpression进行查询547 16.2.7 使用rangeexpression进行查询548 16.2.8 使用searchexpression进行查询548 16.3 使用queryextender控件创建示例页面549 16.4 小结551 第四部分 创建组件 第17章 创建组件554 17.1 创建基本组件554 17.1.1 组件和动态编译556 17.1.2 app_code文件夹中不同语言的组件557 17.1.3 声明方法557 17.1.4 声明字段和属性559 17.1.5 声明构造函数563 17.1.6 重载方法和构造函数564 17.1.7 声明命名空间565 17.1.8 创建部分类566 17.1.9 继承和abstract类567 17.1.10 声明接口569 17.1.11 使用访问修饰符570 17.1.12 智能提示和组件571 17.1.13 在组件中使用asp.net内部对象573 17.2 创建组件库575 17.2.1 编译组件库575 17.2.2 向类库中添加引用578 17.3 架构思考581 17.3.1 创建多层应用程序581 17.3.2 创建用户界面层581 17.3.3 创建业务逻辑层584 17.3.4 创建数据访问层587 17.4 小结591 第18章 使用objectdatasource 控件592 18.1 使用objectdatasource控件表示对象592 18.1.1 到组件593 18.1.2 到datareader594 18.1.3 到dataset596 18.1.4 到linq to sql查询597 18.1.5 到web服务598 18.2 使用objectdatasource控件与参数601 18.2.1 使用不同的参数类型604 18.2.2 作为参数传递对象607 18.3 使用objectdatasource控件分页、排序和过滤数据610 18.3.1 用户界面分页611 18.3.2 数据源分页613 18.3.3 用户界面排序618 18.3.4 数据源排序620 18.3.5 过滤数据624 18.4 处理objectdatasource控件的事件628 18.4.1 添加和修改参数628 18.4.2 处理方法的执行错误631 18.4.3 处理objectcreating事件635 18.5 objectdatasource控件与并发访问636 18.6 扩展objectdatasource控件639 18.6.1 创建自义的objectdata- source控件639 18.6.2 创建自义参数对象642 18.7 小结647 第19章 用ado.net创建数据访问 组件648 19.1 连接模式数据访问649 19.1.1 使用connection对象652 19.1.2 使用command对象660 19.1.3 使用datareader对象677 19.2 非连接模式数据访问683 19.2.1 使用dataadapter对象684 19.2.2 使用datatable对象689 19.2.3 使用dataview对象696 19.2.4 使用dataset对象699 19.3 执行异步数据库命令701 19.3.1 使用异步ado.net方法701 19.3.2 使用异步asp.net页面703 19.4 使用.net framework创建数据库对象706 19.4.1 启用clr集成706 19.4.2 使用.net framework创建用户自义类型707 19.4.3 使用用户自义类型创建数据访问层710 19.4.4 使用.net framework创建存储过程713 19.4.5 创建存储过程程序集714 19.5 小结718 第20章 使用linq to sql访问数据库720 20.1 c#和vb.net的新特性720 20.1.1 理解自动属性721 20.1.2 理解初始化器721 20.1.3 理解类型推断723 20.1.4 理解匿名类型724 20.1.5 理解泛型724 20.1.6 理解lambda表达式726 20.1.7 理解扩展方法729 20.1.8 理解linq730 20.2 创建linq to sql实体732 20.2.1 手工创建实体732 20.2.2 使用linq to sql designer创建实体735 20.2.3 构建实体关联737 20.2.4 使用linqdatasource控件738 20.3 使用linq to sql执行标准数据库命令741 20.3.1 linq to objects与linq to sql741 20.3.2 使用linq to sql进行选择742 20.3.3 使用linq to sql进行插入748 20.3.4 使用linq to sql进行更新751 20.3.5 使用linq to sql进行删除754 20.3.6 动态查询755 20.3.7 调试linq to sql759 20.4 创建自义的linq实体基类761 20.4.1 使用实体基类762 20.4.2 使用entitybase类执行标准数据访问操作762 20.4.3 用entitybase类执行验证764 20.5 小结768 第21章 包含wcf数据服务的数据访问769 21.1 wcf数据服务概述769 21.2 使用包含service reference的数据服务770 21.3 使用包含数据上下文的数据服务773 21.4 小结775 第五部分 站点导航 第22章 使用导航控件778 22.1 理解站点地图778 22.2 使用sitemappath控件780 22.3 使用menu控件785 22.3.1 声明式添加menu条目785 22.3.2 组合使用menu控件和multiview控件788 22.3.3 到站点地图791 22.3.4 到xml文件794 22.3.5 数据数据797 22.3.6 制menu控件800 22.3.7 使用menu控件的模板806 22.4 使用treeview控件808 22.4.1 声明式地添加树视图节点808 22.4.2 在treeview控件中显示复选框812 22.4.3 到站点地图814 22.4.4 到xml文件815 22.4.5 数据数据817 22.4.6 使用延时加载和ajax820 22.4.7 制treeview控件824 22.5 创建分层的sql数据源控件830 22.6 小结832 第23章 使用站点地图834 23.1 使用sitemapdatasource控件834 23.2 使用sitemap类840 23.3 高级站点地图配置844 23.3.1 使用安全修整844 23.3.2 合并多个站点地图848 23.3.3 创建自义的站点地图属性850 23.4 创建自义站点地图提供程序851 23.4.1 创建autositemapprovider852 23.4.2 创建sqlsitemapprovider856 23.5 创建google的sitemap文件860 23.6 小结863 第24章 高级页面导航865 24.1 重映射url865 24.2 使用virtualpathprovider类872 24.2.1 virtualpathprovider类的局限性873 24.2.2 理解virtualpathprovider类873 24.2.3 注册virtualpathprovider类874 24.3 小结875 第25章 使用asp.net的url路由引擎876 25.1 url路由介绍876 25.2 基础url路由方案877 25.2.1 映射基础url877 25.2.2 映射包含参数的url878 25.2.3 映射包含多个段的url879 25.2.4 通过路由链接到其他页面879 25.3 高级url路由880 25.3.1 使用包含默认参数的路由880 25.3.2 使用约束路由881 25.3.3 路由的安全问题882 25.4 小结882
第一部分 构建ASP.NET页面 第1章 ASP.NET Framework概览 2 1.1 ASP.NET和.NET Framework 5 1.1.1 框架类库 5 1.1.2 公共语言运行库 9 1.2 ASP.NET控件 10 1.2.1 ASP.NET控件概览 11 1.2.2 HTML控件 12 1.2.3 理解和处理控件事件 12 1.2.4 视图状态 17 1.3 ASP.NET页面 20 1.3.1 动态编译 20 1.3.2 控件树 23 1.3.3 使用代码隐藏页面 24 1.3.4 处理页面事件 27 1.3.5 使用Page.IsPostBack属性 29 1.3.6 调试和跟踪ASP.NET页面 30 1.3.7 跟踪页面执行 33 1.4 安装ASP.NET Framework 35 1.5 小结 37 第2章 使用标准控件 38 2.1 显示信息 38 2.1.1 使用Label控件 38 2.1.2 使用Literal控件 42 2.2 接收用户输入 44 2.2.1 使用TextBox控件 44 2.2.2 使用CheckBox控件 50 2.2.3 使用RadioButton控件 52 2.3 提交表单数据 55 2.3.1 使用Button控件 55 2.3.2 使用LinkButton控件 57 2.3.3 使用ImageButton控件 59 2.3.4 Button控件使用客户端脚本 62 2.3.5 执行跨页面发送 64 2.3.6 指默认按钮 67 2.3.7 处理Command事件 68 2.4 显示图像 70 2.4.1 使用Image控件 70 2.4.2 使用ImageMap控件 71 2.5 使用Panel控件 75 2.6 使用HyperLink控件 79 2.7 小结 81 第3章 使用验证控件 82 3.1 验证控件概述 82 3.1.1 验证控件与JavaScript 85 3.1.2 使用Page.IsValid 85 3.1.3 设置Display属性 86 3.1.4 突出显示验证错误 86 3.1.5 使用验证组 90 3.1.6 禁用验证 93 3.2 使用RequiredFieldValidator控件 94 3.3 使用RangeValidator控件 97 3.4 使用CompareValidator控件 99 3.5 使用RegularExpressionValidator控件 103 3.6 使用CustomValidator控件 105 3.7 使用ValidationSummary控件 111 3.8 创建自义验证控件 114 3.8.1 创建LengthValidator控件 115 3.8.2 创建AjaxValidator控件 117 3.9 小结 121 第4章 使用Rich控件 122 4.1 接收上传文件 122 4.1.1 把文件保存到文件系统 123 4.1.2 把文件保存到数据库 125 4.1.3 上传大文件 128 4.2 显示日历 133 4.2.1 创建弹出式日期选择器 135 4.2.2 根据数据库表呈现日历 137 4.3 显示广告 141 4.3.1 在XML文件中保存广告 141 4.3.2 在数据库表中存储广告 144 4.3.3 跟踪显示和转到 145 4.4 显示不同的页面视图 149 4.4.1 显示选项卡式页面视图 149 4.4.2 显示多部分表单 152 4.5 显示向导 153 4.6 小结 157 第二部分 设计ASP.NET网站 第5章 使用母版页设计网站 160 5.1 创建母版页 160 5.1.1 创建默认内容 163 5.1.2 嵌套母版页 166 5.1.3 在母版页中使用图片和超链接 170 5.1.4 在Web配置文件中注册母版页 172 5.2 修改母版页内容 172 5.2.1 使用Title属性 173 5.
ASP.NET 2.0+SQL Server 2005全程指南 目录 基础篇 第1章 ASP.NET概述及环境配置 1.1 认识ASRNET 1.1.1 .NET Framework框架 1.1.2 ASP.NET功能与特性 1.1.3 ASP.NET与ASP的区别 1.2 搭建ASP.NET开发环境 1.2.1 安装与配置IIS 1.2.2 安装与配置Visual Studi0.NET 2005 1.3 常用功能窗口介绍 1.3.1 主窗口 1.3.2 文档窗口 1.3.3 工具箱窗口 1.3.4 属性窗口 1.3.5 解决方案资源管理器窗口 1.3.6 错误窗口 1.4 第一个ASENET程序 1.5 本章小结 第2章 C#程序设计基础 2.1 C#语言简介 2.2 C#中的数据类型 2.2.1 值类型 2.2.2 引用类型 2.2.3 装箱和拆箱 2.3 C#语言中的变量和常量 2.3.1 变量 2.3.2 常量 2.4 C#语言中的操作符和表达式 2.4.1 赋值运算符 2.4.2 算术运算符 2.4.3 比较(关系)运算符 2.4.4 逻辑运算符 2.4.5 位运算符 2.5 C#语言中的控制语句 2.5.1 选择语句 2.5.2 循环语句 2.6 异常处理 2.6.1 用trycatch捕获异常 2.6.2 用tryfinally清除异常 2.6.3 用trycatchfinally处理所有的异常 2.7 面向对象程序设计 2.7.1 成员 2.7.2 类的可访问性 2.7.3 构造函数和析构函数 2.7.4 封装 2.7.5 继承 2.7.6 多态 2.8 C#样语言高级特性 2.8.1 接口 2.8.2 事件 2.8.3 预处理指令 2.8.4 反射 2.8.5 线程 2.9 本章小结 进阶篇 第3章 ASP.NET 2.0常用服务器控件 3.1 使用基本控件 3.1.1 TextBox控件的应用 3.1.2 Label控件的应用 3.1.3 DropDownList和ListBox控件应用 3.1.4 CheckBOX和CheckBoxList控件应用 3.1.5 RadioButton和RadioButtonList控件应用 3.2 ASP.NET 2.0新增控件 3.2.1 BulletedList控件的应用 3.2.2 Substitution控件的应用 3.2.3 Wizard控件的应用 3.2.4 MultiView和View控件的应用 3.2.5 FileUpload控件的应用 3.3 其他常用控件 3.3.1 Calendar控件的应用 3.3.2 AdRotator控件的应用 3.3.3 Xml控件的应用  3.4 本章小结 第4章 验证控件 4.1 非空验证 4.2 范围验证 4.3 比较验证 4.4 使用正则表达式验证 4.5 自义验证 4.6 本章小结 第5章 ASP.NET 2.0对象、状态和配置 5.1 Response对象和Request对象 5.1.1 Response对象 5.1.2 Request对象 5.2 HTTP请求上下文 5.2.1 应用程序状态 5.2.2 Server对象 5.2.3 使用Server对象中Execute()和Transfer()方法重向页面 5.2.4 Global.asax文件 5.3 状态管理 5.3.1 Application对象 5.3.2 Session对象 5.3.3 Cookie对象 5.3.4 ViewState对象 5.4 配置ASP.NET应用程序 5.4.1 Web.config文件概述 5.4.2 配置数据库链接字符串 5.4.3 添加自义Web.Config文件配置节 5.4.4 对Web.Config文件进行读写操作 5.4.5 加密和解密Web.Config文件的配置节 5.4.6 ASP.NET网站管理工具 5.4.7 ASP.NET MMC管理单元 5.5 本章小结 第6章 数据源控件 6.1 SqlDataSource数据源控件 6.2 AccessDataSource数据源控件 6.3 XmlDataSource数据源控件 6.4 SiteMapDataSource数据源控件 6.5 0bjectDataSource数据源控件 6.6 本章小结 第7章 SQL Server 2005常用操作 7.1 SQL Server 2005 7.1.1 SQL Server 2005概述 7.1.2 安装SQL Server 2005数据库 7.1.3 连接数据库服务器 7.1.4 修改登录方式 7.2 管理数据库的基本对象 7.2.1 创建数据库 7.2.2 备份数据库 7.2.3 还原数据库 7.2.4 附加数据库 7.2.5 删除数据库 7.2.6 创建和修改袁 7.2.7 删除袁 7.3 SQL常用语句 7.3.1 获取指条件的记录 7.3.2 获取指数量的记录 7.3.3 对记录进行排序 7.3.4 模糊查询 7.3.5 对数据进行分组统计 7.3.6 嵌套查询 7.3.7 插入记录并返回ID 7.3.8 同时更新多条记录 7.3.9 根据条件删除记录 7.4 存储过程 7.4.1 使用存储过程添加数据 7.4.2 使用存储过程查询数据 7.4.3 使用存储过程更新数据 7.4.4 使用存储过程删除数据 7.4.5 存储过程与输出参数 7.5 本章小结 第8章 ADO.NET编程基础 8.1 AD0.NET的基本对象及其操作 8.1.1 Connection对象(连接数据库) 8.1.2 Command对象 8.1.3 DataReader对象 8.1.4 DataAdapter和DataSet对象 8.1.5 使用DataView过滤数据 8.1.6 动态创建DataTable对象 8.2 数据 8.2.1 简单数据 8.2.2 复杂数据 8.2.3 Eval0方法和Bind()方法数据 8.3 本章小结 第9章 GridView及其他数据控件的应用 9.1 GridView控件的应用 9.1.1 GridView控件的概述 9.1.2 使用GridView控件的数据 9.1.3 使用GridView控件的模板列数据 9.1.4 使用GridView控件编辑并删除数据 9.1.5 使用GridView控件分页显示数据 9.1.6 对GridView控件中的数据进行排序 9.2 其他数据控件的应用 9.2.1 使用Repeater控件显示数据 9.2.2 在Repeater控件中分页显示数据 9.2.3 使用DetailsView控件操作一条记录 9.2.4 使用FormView控件更新和插入数据 9.3 本章小结 高级篇 第10章 导航与登录 10.1 站点导航 10.1.1 Menu控件 10.I.2 SiteMapPath控件 10.1.3 TreeView控件 10.2 站点登录 10.2.1 创建新用户 10.2.2 用户登录 10.3 本章小结 第11章 母版页 11.1 母版页概述 11.1.1 母版页的基础知识 11.1.2 母版页运行机制 11.2 创建母版页 11.3 创建内容页 11.4 本章小结 第12章 WebPart部件 12.1 WebPart基础知识 12.1.1 WebPart部件概述 12.1.2 W曲部件具体应用 12.1.3 Web部件基本控件 12.2 创建WebPart控件 12.2.1 WebPartManager控件 12.2.2 WebPart和WebPartZone控件简介 12.3 编辑WebPart控件 12.3.1 EditorZone控件简介 12.3.2 AppearanceEditorPart控件简介 12.3.3 BehaviorEditorPart控件简介 12.3.4 LayoutEditorPart控件简介 12.3.5 PropertyGridEditorPart控件简介 12.3.6 实现编辑WebPart控件 12.4 管理WebPart控件 12.4.1 CatalogZone控件简介 12.4.2 DeclarativeCatalogPart控件简介 12.4.3 PageCatalogPart控件简介 12.4.4 ImportCatalogPart控件简介 12.5 W曲部件个性化设置概述 12.5.1 个性化设置的工作方式 12.5.2 个性化设置和其他ASENET功能 12.6 本章小结 第13章 高级数据处理 13.1 文件处理 13.1.1 访问目录和文件 13.1.2 写入数据 13.1.3 上传文件 13.1.4 下载文件 13.2 XML操作 13.2.1 创建XML文件 13.2.2 写入XML文件 13.2.3 读取XML文件 13.3 其他数据处理 13.3.1 读取注册表信息 13.3.2 获取文件信息 13.4 本章小结 第14章 ASP.NET AJAX相关技术简介 14.1 Ajax概述 14.1.1 什么是Ajax 14.1.2 Ajax的工作原理 14.1.3 Ajax的优势与不足 14.2 ASP.NET AJAX 14.2.1 ASENET AJAX的特性 14.2.2 ASENET AJAX的安装 14.3 ASENET AJAX控件 14.3.1 ScriptManager控件 14.3.2 ScriptManagerProxy控件 14.3.3 UpdatePanel控件 14.3.4 UpdateProgress控件 14.3.5 Timer控件 14.4 本章小结 实践篇 第15章 个人网站初学者工具包 15.1 个人网站初学者工具包概述及创建 15.2 系统通用类及配置文件 15.2.1 配置文件(Web.Config) 15.2.2 存储过程设计 15.2.3 系统通用类设计 15.3 母版页设计 15.4 系统实现 15.4.1 系统主页 15.4.2 用户注册 15.4.3 用户登录 15.4.4 浏览相册 15.4.5 下载照片 15.5 后台管理 15.5.1 创建相册 15.5.2 编辑和删除相册 15.5.3 添加照片 15.5.4 编辑和删除照片 15.6 本章小结 第16章 办公自动化系统 16.1 系统总体设计 16.1.1 系统功能描述 16.1.2 系统架构设计 16.2 系统模块设计 16.2.1 系统功能模块划分 16.2.2 功能模块设计 16.3 数据库设计 16.3.1 数据库表之间的关系 16.3.2 数据库表结构的详细设计 16.4 数据库操作类的设计 16.5 用户登录和注册 16.5.1 用户登录 16.5.2 用户注册 16.6 用户管理及角色管理 16.6.1 用户管理 16.6.2 角色管理 16.7 用户考勤及设置 16.7.1 用户考勤 16.7.2 考勤设置 16.8 站内短信 16.8.1 发送站内短信 16.8.2 收件箱 16.8.3 发件箱 16.9 请假信息管理 16.9.1 填写请假表单 16.9.2 查看审批进度 16.9.3 审批请假信息 16.10 我的通讯录 16.10.1 添加通信记录 16.10.2 查看和编辑通讯录 16.10.3 编辑和删除通讯录分类信息 16.11 部门及职位管理 16.11.1 添加部门 16.11.2 部门管理 16.11.3 添加职位 16.11.4 职位管理 16.12 我的文档管理 16.12.1 上传文档 16.12.2 文档下载 16.12.3 文档管理 16.13 公文流转 16.13.1 新建公文流转 16.13.2 查收公文文件 16.14 本章小结
第1章 空 第2章 ASP.NET运行模型 21.如何在页面中应用javascript脚本-示例1 21.如何在页面中应用javascript脚本-示例2 22.如何实现从服务器端向页面动态添加javascript脚本-示例1 22.如何实现从服务器端向页面动态添加javascript脚本-示例2 24.如何处理多页面重向到同一页面后的返回问题 25.如何用Response.Redirect方法传递汉字 29.如何利用输出缓存技术缓存整个页面 30.如何利用片段缓存技术对用户控件进行缓存 31.如何利用数据缓存技术提高程序的性能 33.如何实现当页面产生错误时重向到自错误界面 35.如何在程序中读写Web.config文件 37.如何使用CSS文件义控件的样式 38.如何启用和禁用ViewState保存状态信息的功能 39.如何应用IsPostBack控制页面的加载 41.如何使用Trace对象进行跟踪调试(页面级) 42.如何使用#Include语法将文件添加到页面 43.如何使用编程的方式处理异常信息 44.如何将网页错误信息写入事件日志 第3章 常用Web服务控件 46.如何使用Label控件动态显示文本信息 47.如何实现当鼠标移到控件时显示提示信息 48.如何在Web应用程序中实现快捷键功能(使用脚本实现) 48.如何在Web应用程序中实现快捷键功能(使用属性实现) 49.如何设置页面上控件的Tab键顺序 50.如何实现用回车键代替Tab键的功能 51.如何为按钮键添加消息框 52.Button、LinkButton和ImageButton服务控件的区别及应用 54.如何使用CheckBox和CheckBoxList控件(CheckBox示例) 54.如何使用CheckBox和CheckBoxList控件(CheckBoxList示例) 55.如何使用RadioButton和RadioButtonList控件(RadioButton示例) 55.如何使用RadioButton和RadioButtonList控件RadioButtonList示例) 56.如何使用Panel控件操作一组控件 57.如何使用Table控件组织页面的内容 58.如何实现DropDownList控件选项的添加、删除等操作 59.如何实现间接改变DropDownList控件的当前选项 60.如何实现两个或多个DropDownList控件的联动 61.如何实现ListBox控件选项的上移、下移、添加和删除操作 62.如何实现ListBox控件中选项的双击事件 63.如何动态设置ListBox控件中各选项的背景颜色 64.如何在页面中动态创建控件 65.如何为HTML服务器控件的事件添加自义方法 第4章 验证控件 67.如何使用RequiredFieldValidator控件验证用户是否输入信息 68.如何使用RegularExpressionValidator控件验证E-mail地址和邮编等格式 69.如何使用RangeValidator控件验证输入的信息是否在指范围内 70.如何使用CompareValidator控件对两个输入控件比较验证 71.如何使用CustomValidator控件自义验证格式 72.如何使用ValidationSummary控件总结所有验证控件的错误信息 73.如何创建自义功能的验证控件 74.如何禁用服务器控件的验证功能 75.如何控制页面部分验证控件有效 76.如何实现控件即时验证功能 77.如何使用验证控件综合验证用户注册页面 78.如何验证DataGrid控件的编辑列 81.如何使用验证控件验证日期类型的输入(CompareValidator) 81.如何使用验证控件验证日期类型的输入(CustomerValidator) 81.如何使用验证控件验证日期类型的输入(RegularValidator) 第5章 高级Web控件 82.如何在网页中使用Calendar Web控件显示和选择日期 83.如何在Calendar Web控件中控制个别日的内容及显示 84.如何在Calendar Web控件中控制用户日期选 86.如何使用XML控件显示XML文件和进行XSLT转换 87.如何使用AdRotator Web控件制作广告发布程序-示例1 87.如何使用AdRotator Web控件制作广告发布程序-示例2 88.如何创建用户控件 89.如何将Web窗体转换成用户控件 90.如何实现动态加载用户控件 92.如何使用TabStrip Web和MultiP

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧