2011-01-17 11 views
1

まず、私はチュートリアルから学ぶこのエリアの初心者です。ボタンをクリックしたときのソースコードの表示

これは、ボタンをクリックすると、codebehindファイルからテキストボックスにsourcecodeをロードする方法を探しています。同じaspxファイルになります。

私はこのウェブサイトを作成しています。ここでは、私が何をしているかのコード例を紹介します。したがって、私がmyweb.com/tutorial1done.aspxに移動した場合、このページにはチュートリアルの最終結果が表示されます。表示ソースボタンをクリックすると、2つのテキストボックスが表示され、最初のボックスにcodebehindを追加し、2番目のボックスにaspxソースを追加する必要があります。

可能かどうかわかりませんが、希望しています。その簡単に行うことがない限り、今のソースの強調表示が必要とされていないため

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 

namespace WebApplication1 
{ 
    public partial class DateTimeOutput : System.Web.UI.Page 
    { 
    protected void output(String value) 
    { 
     outputText.Text += value + Environment.NewLine; 
    } 

    protected void runButton_Click(object sender, EventArgs e) 
    { 
     DateTime dt = new DateTime(); 
     output(dt.ToString()); 
     DateTime nowDt = DateTime.Now; 
     output(nowDt.ToString()); 
    } 

    protected void clearButton_Click(object sender, EventArgs e) 
    { 
     outputText.Text = ""; 
    } 

    protected void dt_showSource_btn_Click(object sender, EventArgs e) 
    { 
     if (dtcb_output.Visible == false) 
     { 
      dtLabel1.Visible = true; 
      dtcb_output.Visible = true; 
     } 
     else 
     { 
      dtLabel1.Visible = false; 
      dtcb_output.Visible = false; 
     } 

     if (dtaspx_output.Visible == false) 
     { 
      dtLabel2.Visible = true; 
      dtaspx_output.Visible = true; 
     } 
     else 
     { 
      dtLabel2.Visible = false; 
      dtaspx_output.Visible = false; 
     } 

    } 

} 
} 

ASPX:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="DateTimeOutput.aspx.cs" Inherits="WebApplication1.DateTimeOutput" %> 

<!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> 
<link rel="stylesheet" href="../styles/codeformatter.css" /> 
</head> 
<body> 
<form id="form1" runat="server"> 
<customControls:Header runat="server" heading="Date and Time Output" /> 
<div> 
    <asp:Panel ID="Panel1" runat="server"> 
     <asp:TextBox ID="outputText" runat="server" Height="175px" TextMode="MultiLine" 
      Width="400px"></asp:TextBox> 
    </asp:Panel> 
</div> 
<asp:Panel ID="Panel2" runat="server"> 
    <asp:Button ID="runButton" runat="server" Text="Run Code" 
     onclick="runButton_Click" Width="95px" /> 
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    <asp:Button ID="clearButton" runat="server" Text="Clear Console" 
     onclick="clearButton_Click" Width="95px" /> 
    <br /> 
    <br /> 
    <asp:Button ID="dt_showSource_btn" runat="server" 
     onclick="dt_showSource_btn_Click" Text="Show Source" /> 
</asp:Panel> 
<asp:Label ID="dtLabel1" runat="server" Text="Code Behind:" Visible="False"></asp:Label> 
<br /> 
<asp:TextBox ID="dtcb_output" runat="server" Height="175px" 
    TextMode="MultiLine" Visible="False" Width="400px"></asp:TextBox> 
<br /> 
<br /> 
<asp:Label ID="dtLabel2" runat="server" Text="ASPX:" Visible="False"></asp:Label> 
<br /> 
<asp:TextBox ID="dtaspx_output" runat="server" Height="175px" 
    TextMode="MultiLine" Visible="False" Width="400px"></asp:TextBox> 
</form> 
</body> 
</html> 

そして、分離コード

この

は、これまで私はこれを持っています。

Thxです。

+0

あらかじめ定義されたソースコードを意味するのか、現在のページのソースコードを参照しているのかは不明です。 –

+0

私は現在のページのソースを参照していましたが、マッテンズの答えでは不可能であることがわかります:) – fjappe

答えて

1

コードビハインドファイルの実際のコードを参照している場合は、問題があります。ファイルがコンパイルされ、ダイナミックリンクライブラリ(.dll)に中間コードとして配置されると、.aspx.csファイルにはアクセスできなくなります。唯一の方法は、コードファイルをdeploydプロジェクトに組み込み、それを読み込んで内容を表示するFileStream(または何でも)で開くことです。

+0

まあ、.csファイルを.txtファイルにコピーして読み込んだ場合と同じになると思います1?それは私の自己のために簡単にすることでした - 私は完成したチュートリアルのすべてのために使用する関数を持つことができます。 – fjappe

+0

ビルドオプションのどこかで、ファイルを正しい位置(binディレクトリ)に自動的にコピーできるアフタービルドスクリプトを指定することができます。 – Matten

+0

これは、私のために少し戸惑うように思えます。今のところ、asp.netとvisual studioで全く緑です。 – fjappe

関連する問題