怎样给内嵌套的Repeater中的Button添加事件?

流光 2011-07-31 09:50:50
我有两个Repeater,外面那个叫“rptHotel”,里面那个是“rptRoom”,rptRoom根据rptHotel绑定不同数据,rptRoom每行都有个btnBook按钮,请问如何给这个btnBook按钮添加上onClick事件?
<div id="collapsiblepanel">
<asp:Repeater ID="rptHotel" runat="server" DataSourceID="dsHotelList"
onitemdatabound="rptHotel_ItemDataBound">
<HeaderTemplate>
<table width="100%">
<thead>
<tr>
<th>
酒店名称
</th>
<th>
最低价
</th>
<th>
展开/收拢
</th>
</tr>
</thead>
</HeaderTemplate>
<ItemTemplate>
<tbody>
<tr style="background-color: #33CCFF">
<td>
<%#Eval("HotelName") + "(联系电话:" + Eval("Telephone")+")"%>
</td>
<td>
最低<%#Eval("LowestPrice")%>元起
</td>
<td>
<asp:Label ID="lblDetails" runat="server" Text="详情"></asp:Label>
<asp:Image ID="imgbtnExpansion" runat="server" ImageUrl="~/Images/zhankai.jpg" />
</td>
</tr>
<tr>
<td colspan="3">
<asp:Panel ID="pnlDetails" runat="server">
<div>
<asp:Label ID="lblHotelId" runat="server" Text='<%#Eval("id") %>'></asp:Label></div>
<div>
<%#Eval("Description")%></div>
<div>
<%# Eval("Address") %></div>
<div>
<asp:Repeater ID="rptRoom" runat="server" OnItemCommand="rptRoom_ItemCommand">
<HeaderTemplate>
<table width="100%">
<thead>
</thead>
</HeaderTemplate>
<ItemTemplate>
<tbody>
<tr>
<td>
<%#Eval("RoomNo") %>
</td>
<td>
<%#Eval("RoomName") %>
</td>
<td>
<%#Eval("TypeName") %>
</td>
<td>
<%#Eval("Price") %>
</td>
<td>
<%#Eval("CheckinTime") %>
</td>
<td>
<%#Eval("LeaveTime") %>
</td>
<td>
<%--<asp:Button ID="btnBook" runat="server" Text="预订" OnClick="btn_Click" />--%>
<asp:Button ID="btnBook" runat="server" Text="Button" onclick="btnBook_Click" />
</td>
</tr>
</tbody>
</ItemTemplate>
<FooterTemplate>
<tfoot>
</tfoot>
</table>
</FooterTemplate>
</asp:Repeater>
</div>
</asp:Panel>
<asp:CollapsiblePanelExtender ID="CollapsiblePanelExtender1" runat="server" TargetControlID="pnlDetails"
Collapsed="True" ImageControlID="Image1" ExpandedImage="~/Images/shousuo.jpg"
CollapsedImage="~/images/zhankai.jpg" AutoCollapse="False" AutoExpand="False"
ScrollContents="false" CollapsedSize="0" ExpandedSize="0" ExpandControlID="imgbtnExpansion"
CollapseControlID="imgbtnExpansion">
</asp:CollapsiblePanelExtender>
</td>
</tr>
</tbody>
</ItemTemplate>
<FooterTemplate>
<tfoot>
</tfoot>
</table>
</FooterTemplate>
</asp:Repeater>
<asp:SqlDataSource ID="dsHotelList" runat="server" ConnectionString="<%$ ConnectionStrings:dbHotelOnlineConnectionString %>">
</asp:SqlDataSource>
<%--<asp:Button ID="btnBook" runat="server" Text="Button" onclick="btnBook_Click" />--%>
<%-- <asp:SqlDataSource ID="dsRoom" runat="server" ConnectionString="<%$ ConnectionStrings:dbHotelOnlineConnectionString %>"
SelectCommand="SELECT * FROM [RoomList]"></asp:SqlDataSource>--%>
</div>


protected void rptHotel_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
bool flag = true;
HotelDataOperate hdo = new HotelDataOperate();
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
Repeater rpt = e.Item.FindControl("rptRoom") as Repeater;
DataRowView rowv = (DataRowView)e.Item.DataItem;
int typeid = Convert.ToInt32(rowv["id"]);
IEnumerable<RecordList> lst=hdo.getRoomList(typeid);
rpt.DataSource = lst;
rpt.DataBind();
foreach (RepeaterItem itm in rpt.Items)
{
Button btn = (Button)itm.FindControl("btnBook");//确认按钮
foreach (RecordList rrd in lst)
{
if (flag)
{
btn.Text = "留有客房,欢迎预订";
btn.Enabled = true;
flag = !flag;
}
else
{
btn.Text = "客房已满,不可预订";
btn.Enabled = false;
flag = !flag;
}
}
}
}
}

protected void btnBook_Click(object sender, EventArgs e)
{
string temp = ((Button)sender).Text;
}


protected void rptRoom_ItemCommand(object source, RepeaterCommandEventArgs e)
{

}


拜托各位大神了,初来乍到,菜鸟一只,也没有多少分,还希望大神们海涵!
多谢!
...全文
194 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
amandag 2011-07-31
  • 打赏
  • 举报
回复
页面指令改一下
<%@ Page Language="C#" ... EnableEventValidation="false" %>
流光 2011-07-31
  • 打赏
  • 举报
回复
Server Error in '/' Application.

Invalid postback or callback argument.  Event validation is enabled using <pages enableEventValidation="true"/> in configuration or <%@ Page EnableEventValidation="true" %> in a page.  For security purposes, this feature verifies that arguments to postback or callback events originate from the server control that originally rendered them.  If the data is valid and expected, use the ClientScriptManager.RegisterForEventValidation method in order to register the postback or callback data for validation.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.ArgumentException: Invalid postback or callback argument.  Event validation is enabled using <pages enableEventValidation="true"/> in configuration or <%@ Page EnableEventValidation="true" %> in a page.  For security purposes, this feature verifies that arguments to postback or callback events originate from the server control that originally rendered them.  If the data is valid and expected, use the ClientScriptManager.RegisterForEventValidation method in order to register the postback or callback data for validation.

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace:


[ArgumentException: Invalid postback or callback argument. Event validation is enabled using <pages enableEventValidation="true"/> in configuration or <%@ Page EnableEventValidation="true" %> in a page. For security purposes, this feature verifies that arguments to postback or callback events originate from the server control that originally rendered them. If the data is valid and expected, use the ClientScriptManager.RegisterForEventValidation method in order to register the postback or callback data for validation.]
System.Web.UI.ClientScriptManager.ValidateEvent(String uniqueId, String argument) +8653142
System.Web.UI.Control.ValidateEvent(String uniqueID, String eventArgument) +113
System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +35
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +36
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5563
begintransaction 2011-07-31
  • 打赏
  • 举报
回复
把错误信息贴出来
lovebaby 2011-07-31
  • 打赏
  • 举报
回复
报啥错
流光 2011-07-31
  • 打赏
  • 举报
回复
我也这么做了呀,我在外面拖了一个button并双击,然后把button移到了我的子repeater中去。[Quote=引用 1 楼 msdnxgh 的回复:]

http://www.ie512.com/news.aspx?id=205&no=1

参与例子。打开可能有点慢
[/Quote]
流光 2011-07-31
  • 打赏
  • 举报
回复
一直报错,只要点击那个按钮就报错了。真不知道该怎么办了。[Quote=引用 2 楼 godhelpmea 的回复:]

就跟普通的button按钮添加事件一样啊。你可以再repeater外面拉个button,然后双击,记住它的代码,然后仿造它的代码格式加到你要的button上就可以了。
[/Quote]
godhelpmea 2011-07-31
  • 打赏
  • 举报
回复
就跟普通的button按钮添加事件一样啊。你可以再repeater外面拉个button,然后双击,记住它的代码,然后仿造它的代码格式加到你要的button上就可以了。
MSDNXGH 2011-07-31
  • 打赏
  • 举报
回复
http://www.ie512.com/news.aspx?id=205&no=1

参与例子。打开可能有点慢
导言 创建一个数据访问层 创建一个业务逻辑层 母板页和站点导航 基本报表 使用ObjectDataSource展现数据 声明参数 编程设置ObjectDataSource的参数值 主/从 使用DropDownList过滤的主/从报表 使用两个DropDownList过滤的主/从报表 跨页面的主/从报表 使用GridView 和DetailView实现的主/从报表 自定义格式化 基于数据的自定义格式化 在GridView控件使用TemplateField 在DetailsView控件使用TemplateField 使用FormView 的模板 在GridView的页脚显示统计信息 编辑插入和删除数据 概述插入、更新和删除数据 研究插入、更新和删除的关联事件 在ASP.NET页面处理BLL/DAL层的异常 给编辑和新增界面增加验证控件 定制数据修改界面 实现开放式并发 为删除数据添加客户端确认 基于用户对修改数据进行限制 分页和排序 分页和排序报表数据 大数据量时提高分页的效率 排序自定义分页数据 创建自定义排序用户界面 自定义按钮行为 GridView里的Button 使用DataList和Repeater显示数据 用DataList和Repeater来显示数据 格式化DataList和Repeater的数据 使用DataList来一行显示多条记录 数据控件的嵌套 使用DataList和Repeater过滤数据 使用DropDownList过滤的主/从报表 跨页面的主/从报表 使用Repeater和DataList实现的主/从报表 使用DataList编辑和删除数据 综叙:在DataList里编辑和删除数据 批量更新 处理BLL和DAL的异常 在编辑和插入界面里添加验证控件 自定义DataList编辑界面 实现开放式并发 为删除数据添加客户端确认 基于用户对修改数据进行限制 DataList和Repeater的分页和排序 DataList和Repeater数据分页 DataList和Repeater数据排序(一) DataList和Repeater数据排序(二) DataList和Repeater数据排序(三) DataList和Repeater的自定义按钮行为 DataList和Repeater里的自定义button 从ASP.NET页面直接访问数据库 47 使用SqlDataSource 控件查询数据(Reeezak) 48 在SqlDataSource使用参数化查询(Reeezak) 49 使用SqlDataSource插入、更新以及删除数据(Reeezak
导言 创建一个数据访问层 创建一个业务逻辑层 母板页和站点导航 基本报表 使用ObjectDataSource展现数据 声明参数 编程设置ObjectDataSource的参数值 主/从 使用DropDownList过滤的主/从报表 使用两个DropDownList过滤的主/从报表 跨页面的主/从报表 使用GridView 和DetailView实现的主/从报表 自定义格式化 基于数据的自定义格式化 在GridView控件使用TemplateField 在DetailsView控件使用TemplateField 使用FormView 的模板 在GridView的页脚显示统计信息 编辑插入和删除数据 概述插入、更新和删除数据 研究插入、更新和删除的关联事件 在ASP.NET页面处理BLL/DAL层的异常 给编辑和新增界面增加验证控件 定制数据修改界面 实现开放式并发 为删除数据添加客户端确认 基于用户对修改数据进行限制 分页和排序 分页和排序报表数据 大数据量时提高分页的效率 排序自定义分页数据 创建自定义排序用户界面 自定义按钮行为 GridView里的Button 使用DataList和Repeater显示数据 用DataList和Repeater来显示数据 格式化DataList和Repeater的数据 使用DataList来一行显示多条记录 数据控件的嵌套 使用DataList和Repeater过滤数据 使用DropDownList过滤的主/从报表 跨页面的主/从报表 使用Repeater和DataList实现的主/从报表 使用DataList编辑和删除数据 综叙:在DataList里编辑和删除数据 批量更新 处理BLL和DAL的异常 在编辑和插入界面里添加验证控件 自定义DataList编辑界面 实现开放式并发 为删除数据添加客户端确认 基于用户对修改数据进行限制 DataList和Repeater的分页和排序 DataList和Repeater数据分页 DataList和Repeater数据排序(一) DataList和Repeater数据排序(二) DataList和Repeater数据排序(三) DataList和Repeater的自定义按钮行为 DataList和Repeater里的自定义button 从ASP.NET页面直接访问数据库 47 使用SqlDataSource 控件查询数据(Reeezak) 48 在SqlDataSource使用参数化查询(Reeezak) 49 使用SqlDataSource插入、更新以及删除数据(Reeezak
导言 创建一个数据访问层 创建一个业务逻辑层 母板页和站点导航 基本报表 使用ObjectDataSource展现数据 声明参数 编程设置ObjectDataSource的参数值 主/从 使用DropDownList过滤的主/从报表 使用两个DropDownList过滤的主/从报表 跨页面的主/从报表 使用GridView 和DetailView实现的主/从报表 自定义格式化 基于数据的自定义格式化 在GridView控件使用TemplateField 在DetailsView控件使用TemplateField 使用FormView 的模板 在GridView的页脚显示统计信息 编辑插入和删除数据 概述插入、更新和删除数据 研究插入、更新和删除的关联事件 在ASP.NET页面处理BLL/DAL层的异常 给编辑和新增界面增加验证控件 定制数据修改界面 实现开放式并发 为删除数据添加客户端确认 基于用户对修改数据进行限制 分页和排序 分页和排序报表数据 大数据量时提高分页的效率 排序自定义分页数据 创建自定义排序用户界面 自定义按钮行为 GridView里的Button 使用DataList和Repeater显示数据 用DataList和Repeater来显示数据 格式化DataList和Repeater的数据 使用DataList来一行显示多条记录 数据控件的嵌套 使用DataList和Repeater过滤数据 使用DropDownList过滤的主/从报表 跨页面的主/从报表 使用Repeater和DataList实现的主/从报表 使用DataList编辑和删除数据 综叙:在DataList里编辑和删除数据 批量更新 处理BLL和DAL的异常 在编辑和插入界面里添加验证控件 自定义DataList编辑界面 实现开放式并发 为删除数据添加客户端确认 基于用户对修改数据进行限制 DataList和Repeater的分页和排序 DataList和Repeater数据分页 DataList和Repeater数据排序(一) DataList和Repeater数据排序(二) DataList和Repeater数据排序(三) DataList和Repeater的自定义按钮行为 DataList和Repeater里的自定义button 从ASP.NET页面直接访问数据库 47 使用SqlDataSource 控件查询数据(Reeezak) 48 在SqlDataSource使用参数化查询(Reeezak) 49 使用SqlDataSource插入、更新以及删除数据(Reeezak
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

62,050

社区成员

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

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

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

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