学习笔记1_控件静态ID_图标控件_Web配置文件转换

  • 控件静态ID
  1. 创建一个ASP.NET空项目,在项目中添加一个母版页
  2. 添加一个用户控件,在其中添加两个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>注意用户控件的注册方法&#60%@ Register TagPrefix="asp" TagName="WebUserControl" Src="~/WebUserControl1.ascx"%&#62 </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; }
}
  • 图标控件
  1. 创建页面
  2. 拖拽控件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配置文件转换
  1. 开发环境和部署环境下,数据库连接字符串不同,自定义错误也不同
  2. 在配置管理器中新建解决方案配置MyConfig
  3. 在解决方案中,右击Web.config文件,选择"添加配置转换"
  4. 首先打开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>
  1. 在Visual Studio 工具栏中选择Release作为当前配置,然后发布项目.
  2. 发布成功后,可以看到连接字符串变为Web.Release.config中的字符串
  3. 当然,可以在MyConfig中详细配置,然后选择MyConfig作为当前配置,再次发布网站.
  4. 选择谁为当前配置,就以谁的配置为准.

下载源文件

原文地址:https://www.cnblogs.com/qingkongwanli/p/2789584.html