2014年8月21日 星期四

C# Code Inside in ASP.NET Page Tags




<% int id = int.Parse(Request["id"]); %>

<%# Eval("id") %>



" />

<%  //without this bind the <%# will be ignored
    void Page_Load( object sender, EventArgs e ) {
        demo.DataBind(); 
        //or
        repeaterWithManyLinks.DataBind(); 
    } 
%>

Use a repeater and <%# Eval(...) %> with repeater.DataBind();

Use a foreach loop (<% foreach(... %>) with <%= ... %>

轉自 http://stackoverflow.com/questions/1158424/how-to-use-c-sharp-code-inside-tags-on-asp-net-page

2014年8月17日 星期日

ASP.NET GridView Code-Behind TemplateField


        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                TemplateField TF = new TemplateField();
                TF.HeaderTemplate = new GridViewTextTemplate(DataControlRowType.Header, "選擇", "Choose");
                TF.ItemTemplate = new GridViewTextTemplate(DataControlRowType.DataRow, "GridViewCB", "GridViewCB");
                TF.ItemStyle.HorizontalAlign = HorizontalAlign.Center;
                TF.ItemStyle.VerticalAlign = VerticalAlign.Middle;
                TF.ShowHeader = true;
                GridView1.Columns.Add(TF);
            }
        }

        public class GridViewTextTemplate : ITemplate
        {
            private DataControlRowType TemplateType;
            private string ColumnName;
            private string CId;

            public GridViewTextTemplate(DataControlRowType Type, string ColName, string controlId)
            {
                TemplateType = Type;
                ColumnName = ColName;
                CId = controlId;
            }

            public void InstantiateIn(System.Web.UI.Control container)
            {
                switch (TemplateType)
                {
                    case DataControlRowType.Header:
                        Label Lbl = new Label();
                        Lbl.ID = CId;
                        Lbl.Text = ""+ColumnName+"";
                        container.Controls.Add(Lbl);
                        break;

                    case DataControlRowType.DataRow:
                        CheckBox myCheckBox = new CheckBox();
                        myCheckBox.ID = CId;
                       // myCheckBox.DataBinding += new EventHandler(this.CheckBoxDataBinding);
                        container.Controls.Add(myCheckBox);
                        break;

                    default:
                        // Insert code to handle unexpected values.
                        break;

                }
            }

           /* private void CheckBoxDataBinding(object sender, EventArgs e)
            {
                CheckBox myCheckBox = (CheckBox)sender;
                GridViewRow row = (GridViewRow)myCheckBox.NamingContainer;
                myCheckBox.Text = System.Web.UI.DataBinder.Eval(row.DataItem, ColumnName).ToString();
            }*/
        }

2014年8月15日 星期五

WebUserControl MasterPage Page 取得控件

Master
<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="DefaultSite.master.cs" Inherits="Debo.DefaultSite" %>

<%@ Register TagPrefix="TreeTool" TagName="tree" Src="~/UserTool/front/MenuTreeView.ascx" %>

<%@ Register TagPrefix="GoHomeBtn" TagName="GHB" Src="~/UserTool/front/GoHomeLinkButton.ascx" %>

<!DOCTYPE html>


<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

<title>網頁後台管理系統</title>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

    <link href="css/MainCss.less" rel="stylesheet" />

    <script src="Scripts/jquery-2.0.3.min.js"></script>

    <asp:ContentPlaceHolder ID="script" runat="server">

    </asp:ContentPlaceHolder>

</head>

<body>

    <form runat="server">

<div id="header">

   
 <asp:ImageButton ID="ImageButton1" runat="server" ImageUrl="~/_thumbs/Images/front/logo.png" PostBackUrl="~/index.aspx" 
/>

    

</div>

        <table style="margin:20px;">

            <tr>

                <td>

                    <TreeTool:tree ID="Tree1" runat="server"></TreeTool:tree>

                </td>

                <td valign="top" style="margin:0px 50px; position:absolute; width:auto;">

                    <GoHomeBtn:GHB ID="GHB1" runat="server"></GoHomeBtn:GHB>

                    <asp:ContentPlaceHolder ID="ContentMain" runat="server"></asp:ContentPlaceHolder>

                </td>

            </tr>

        </table>

        </form>

</body>

</html>


Page (News.aspx.cs)

        protected void Page_Load(object sender, EventArgs e)

        {

            Label lb = (Label)Page.Master.FindControl("GHB1").FindControl("GlobalLab");

            lb.Text = "新聞訊息";



            if (Request.QueryString["NewsID"] != null || Request.QueryString["Action"] != null)

            {

               

                NewsPlace.Controls.Add(this.LoadControl("~/UserTool/NewsFolder/newsedit.ascx"));

            }

            else

            {

                NewsPlace.Controls.Add(this.LoadControl("~/UserTool/NewsFolder/news.ascx"));

            }

        }


WebUserControl

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="GoHomeLinkButton.ascx.cs" Inherits="Debo.UserTool.GoHomeLinkButton" %>

<asp:LinkButton ID="GoHome" runat="server" Font-Underline="False" Font-Names="微軟正黑體" Font-Size="Small" ForeColor="Black">回首頁</asp:LinkButton>

<br/>

<asp:label ID="label1" runat="server" Font-Names="微軟正黑體" Font-Size="Small">當前位置: </asp:label><asp:LinkButton ID="Address" runat="server" Font-Names="微軟正黑體" Font-Size="Small" ForeColor="Black">網站管理中心--</asp:LinkButton><asp:Label ID="GlobalLab" runat="server" Text=""  Font-Names="微軟正黑體" Font-Size="Small" ></asp:Label>

<hr />

ASP.NET Div加入WebUserControl並做切換


Aspx
<%@ Page Title="" Language="C#" MasterPageFile="~/DefaultSite.Master" AutoEventWireup="true" CodeBehind="news.aspx.cs" Inherits="Debo.news" MaintainScrollPositionOnPostback="true" %>
<%@ Register TagPrefix="NewsEdit" TagName="NE" Src="~/UserTool/NewsFolder/newsedit.ascx" %>
<%@ Register TagPrefix="NewsHome" TagName="NH" Src="~/UserTool/NewsFolder/news.ascx" %>



    
Aspx.cs protected void Page_Load(object sender, EventArgs e) { if (Request.QueryString["NewsID"] != null || Request.QueryString["Action"] != null) { NewsPlace.Controls.Add(this.LoadControl("~/UserTool/NewsFolder/newsedit.ascx")); } else { NewsPlace.Controls.Add(this.LoadControl("~/UserTool/NewsFolder/news.ascx")); } }

2014年8月14日 星期四

ASP.NET 使用FileUpload與Image做出預覽效果

HTML
<tr>
<td class="leftTD">上傳圖片</td>
<td style="width:5%"><asp:FileUpload ID="ImageFileUpload" runat="server" Font-Names="微軟正黑體" onchange="previewFile()" Width="150px"/></td>
<td class="rightTD"><asp:Image ID="Preview" ImageUrl="~/_thumbs/Images/news/none.gif" runat="server" Width="80" Height="80" /></td>
</tr>
 
JavaScript
 
    function previewFile() {
    var preview = document.querySelector('#<%=Preview.ClientID %>');
    var file = document.querySelector('#<%=ImageFileUpload.ClientID %>').files[0];
    var reader = new FileReader();

    reader.onloadend = function () {
        preview.src = reader.result;
    }

    if (file) {
        reader.readAsDataURL(file);
    } else {
        preview.src = "";
    }
}