2015-06-13 164 views
2

我在自定義詳細視圖中工作。我有一個程序頁面查看所有程序。當用戶點擊更新按鈕時,用戶被重定向到管理程序頁面。 「管理程序」頁面包含從中提取所有行的方法。在方法後面訪問代碼在aspx頁面中變量

public string ProgramsDetails() 
{ 
    using (SqlConnection con = new SqlConnection(str)) 
    { 
     string htmlStr = ""; 
     SqlCommand cmd = con.CreateCommand(); 
     cmd.CommandText = " SELECT * from programs where [email protected]"; 
     cmd.Parameters.AddWithValue("@ProgId", "1"); 
     con.Open(); 
     SqlDataReader reader = cmd.ExecuteReader(); 
     if (reader.Read()) 
     { 
      int ProgId = reader.GetInt32(0); 
      string ProgTitle = reader.GetString(1); 
      string ProgBudget = reader.GetString(4); 
      string ProgStarDate = reader.GetString(5); 

     } 

     con.Close(); 
     return htmlStr; 
    } 
} 

如何從.aspx頁面訪問變量?可以說我想訪問ProgTitle

我已經使用這個方法,但似乎它不工作

<%=ProjTitle%> 

我想顯示在那裏尊重文本框中每列的值

<div class="cmrs-panel-body no-padding"> 
     <div class="cmrs-form-inline"> 
      <div class="cmrs-form-row bordered"> 
       <label class="cmrs-form-label">Program Code Name</label> 
       <div class="cmrs-form-item"> 
        <input type="text" name="Code" class="large"> 
       </div> 
      </div> 
     </div> 
     <div class="cmrs-form-inline"> 
      <div class="cmrs-form-row bordered"> 
       <label class="cmrs-form-label">Program Title</label> 
       <div class="cmrs-form-item"> 
        <input type="text" name="Title" class="large" value="<%=ProgTitle %>"> 
       </div> 
      </div> 
     </div> 
     <div class="cmrs-form-inline"> 
      <div class="cmrs-form-row bordered"> 
       <label class="cmrs-form-label">Program Description</label> 
       <div class="cmrs-form-item"> 
        <textarea class="large"></textarea> 
       </div> 
      </div> 
     </div> 
</div> 

通常我會添加HTML代碼方法,但這是不可行的,所以我想獲得變量值並將其顯示在文本框中。

htmlStr+="<table><tr><td>"+ProgTitle+"</td></tr></table>"; 
+0

您可以在其中定義'ProjTitle'的地方添加一部分.aspx代碼嗎? – ekad

+0

」> – user3127648

+1

您不能訪問本地變量。只有全局變量可以通過'<%= VariableName/Property%>' –

回答

3

ProgTitle必須聲明爲代碼protectedpublic背後,使其從的.aspx訪問。更改您的代碼如下

protected string ProgTitle; 

public string ProgramsDetails() 
{ 
    using (SqlConnection con = new SqlConnection(str)) 
    { 
     string htmlStr = ""; 
     SqlCommand cmd = con.CreateCommand(); 
     cmd.CommandText = " SELECT * from programs where [email protected]"; 
     cmd.Parameters.AddWithValue("@ProgId", "1"); 
     con.Open(); 
     SqlDataReader reader = cmd.ExecuteReader(); 
     if (reader.Read()) 
     { 
      int ProgId = reader.GetInt32(0); 
      ProgTitle = reader.GetString(1); 
      string ProgBudget = reader.GetString(4); 
      string ProgStarDate = reader.GetString(5);    
     } 

     con.Close(); 
     return htmlStr; 
    } 
} 

,那麼你可以在你的aspx代碼

<input type="text" name="Title" class="large" value="<%=ProgTitle %>"> 
+0

這解決了這個問題,但從數據庫返回的值沒有顯示在文本框中。 – user3127648

+0

你在哪裏可以在後面的代碼中調用'ProgramsDetails'方法? – ekad

+0

不,我的意思是你在哪裏調用'ProgramsDetails'方法?它在'Page_Load'中嗎? – ekad

0

如果不使用數據綁定,有關使用會話和分配變量,然後用它如何訪問ProgTitle。關於代碼Behing:SESSION.START(); SESSION["PjTitle"]=PrgTtile; ,然後在aspx中訪問它:<%= SESSION["PjTitle"] %>

相關問題