学习笔记1_控件静态ID_图标控件_Web配置文件转换
- 控件静态ID
- 创建一个ASP.NET空项目,在项目中添加一个母版页
- 添加一个用户控件,在其中添加两个TextBox控件,一个使用默认ID生成方式,一个使用静态ID
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="WebUserControl1.ascx.cs" Inherits="WebApplication1.WebUserControl1" %> <asp:TextBox ID="TextBox1" runat="server">默认ID</asp:TextBox> <asp:TextBox ID="TextBox2" runat="server" ClientIDMode="Static">静态ID</asp:TextBox>
3. 从母版页创建内容页,在页面上放置用户控件,然后再放置两个Button控件,一个使用默认ID,一个使用静态ID,注意添加用户控件的方法
<%@ Page Title="" Language="C#" MasterPageFile="~/Site1.Master" AutoEventWireup="true" CodeBehind="WebForm2.aspx.cs" Inherits="WebApplication1.WebForm2" %> <%@ Register TagPrefix="asp" TagName="WebUserControl" Src="~/WebUserControl1.ascx" %> <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server"> <script type="text/javascript" language="javascript"> function getValue1() { var v = document.getElementById('TextBox2').value; alert(v); } function getValue2() { var v = document.getElementById('<%=WebUserControl1.textBoxId%>').value; alert(v); } </script> </asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server"> <ol> <li>注意控件ID,默认情况下控件的客户端ID值为其各级容器控件ID与控件本身ID的组合,查看源代码可以得知 </li> <li>注意用户控件的注册方法<%@ Register TagPrefix="asp" TagName="WebUserControl" Src="~/WebUserControl1.ascx"%> </li> <li>获取默认ID或静态ID的文本的方法</li> </ol> <asp:WebUserControl ID="WebUserControl1" runat="server"></asp:WebUserControl> <asp:Button ID="Button1" runat="server" Text="获取默认ID里面的文本" OnClientClick="getValue2()" /> <asp:Button ID="Button2" runat="server" Text="获取静态ID里面的文本" ClientIDMode="Static" OnClientClick="getValue1()" /> </asp:Content>
4. 运行页面,查看源代码.默认情况下,控件的客户端ID值为其各级容器控件的ID和控件本身ID的组合
5. 如果要在浏览器操作两个TextBox控件,例如获取其中的文本,实现和工作量有较大的区别.对于静态ID控件来说,由于明确知道其客户端ID,因此JavaScript编写简单
function getValue1() { var v = document.getElementById('TextBox2').value; alert(v); }
6.要获取默认ID的控件的值.在用户控件添加一个public属性,通过此属性返回TextBox控件的客户端ID.在Web页面中,通过访问此属性得到TextBox控件的客户端ID,并应用与JavaScript代码中.
public string textBoxId { get { return TextBox1.ClientID; } }
- 图标控件
- 创建页面
- 拖拽控件Chart,添加数据源,可以选择Northwind,查询语句为"select CategoryName,CategorySales from Category Sales for 1997"
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ChartSample.aspx.cs" Inherits="WebApplication1.ChartSample" %> <%@ Register Assembly="System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" Namespace="System.Web.UI.DataVisualization.Charting" TagPrefix="asp" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div> <asp:Chart ID="Chart1" runat="server" DataSourceID="SqlDataSource1" Height="352px" Width="805px"> <Series> <asp:Series Name="Series1" XValueMember="CategoryName" YValueMembers="CategorySales" YValuesPerPoint="6"> </asp:Series> </Series> <ChartAreas> <asp:ChartArea Name="ChartArea1"> </asp:ChartArea> </ChartAreas> </asp:Chart> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>" SelectCommand="SELECT [CategoryName], [CategorySales] FROM [Category Sales for 1997]"> </asp:SqlDataSource> </div> </form> </body> </html>
- Web配置文件转换
- 开发环境和部署环境下,数据库连接字符串不同,自定义错误也不同
- 在配置管理器中新建解决方案配置MyConfig
- 在解决方案中,右击Web.config文件,选择"添加配置转换"
- 首先打开Web.config,添加
<connectionStrings> <add name="db1" connectionString="Data Source=.;Initial Catalog=DefaultDb;Integrated Security=True"/> </connectionStrings>
打开Web.Debug.config文件,添加发布配置,比如发布数据库"DebugServer"
<!--整个代码的含义为查找name值相同的连接字符串,并使用此处提供的新增设置原有属性--> <connectionStrings> <add name="db1" connectionString="Data Source=DebugServer;Initial Catalog=NorthWind;Integrated Security=True" xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/> </connectionStrings>
打开Web.Release.config文件,添加发布配置"ReleaseSQLServer"
<connectionStrings> <add name="db1" connectionString="Data Source=ReleaseSQLServer;Initial Catalog=MyReleaseDB;Integrated Security=True" xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/> </connectionStrings>
- 在Visual Studio 工具栏中选择Release作为当前配置,然后发布项目.
- 发布成功后,可以看到连接字符串变为Web.Release.config中的字符串
- 当然,可以在MyConfig中详细配置,然后选择MyConfig作为当前配置,再次发布网站.
- 选择谁为当前配置,就以谁的配置为准.