2011-11-01 59 views
0

我是新來的asp.net。我在該網頁中創建了一個網頁,我使用表格標籤設計了該網頁。我已經在文件後面的代碼中填充了數據表。我訪問了網頁設計中的數據表字段,以便在表格中顯示值。用於訪問值的代碼是作爲follows--如何在asp.net中的網頁文件後面的代碼中調用設計頁面中的函數?

<table> 
<tr> 
<td class="FieldHeader"> 
      <span>MD Priority :</span></td> 
<td> 
    <span><img src='<%GetImage(dtCompany.Rows[0]["MDPriority"]);%>' alt=""/> 
    <%Response.Write(dtCompany.Rows[0]["MDPriority"].ToString());%> 
    </span> 
</td> 
</tr> 
</table> 

的getImage函數的格式follows--

public string GetImage(object ImageID) 
    { 
     if (ImageID != null | ImageID != DBNull.Value) 
     { 
      int imageID = 0; 
      if (ImageID != DBNull.Value) 
      { 
       imageID = Convert.ToInt32(ImageID); 
      } 

      switch (imageID) 
      { 
       case 0: 
        strPath = "../images/not assigned.jpg"; 
        break; 
       case 1: 
        strPath = "../images/low.jpg"; 
        break; 
       case 2: 
        strPath = "../images/midium.jpg"; 
        break; 
       case 3: 
        strPath = "C:/Inetpub/wwwroot/VinserverWebTemplate2/images/high.jpg"; 
        break; 
       case 4: 
        strPath = "../images/not assigned.jpg"; 
        break; 
      } 

      return strPath; 

     } 
     else 
     { 
      return ""; 
     } 
    } 

我想要通過使用上述函數,以顯示圖像。但我無法在img標籤的src屬性中獲取圖像路徑。

當我運行我的網頁,然後下面的HTML代碼由browser--

<table> 
<tr> 
      <td class="FieldHeader"> 
       <span>MD Priority :</span></td> 
      <td> 
       <span><img src='' alt=""/> 
       1 
       </span> 
      </td> 
</tr> 
</table> 

呈現怎樣解決這個問題?

謝謝。

+0

您試圖執行比實際ASP.NET更多的舊式ASP代碼。當你看ASP.NET的時候,你需要明白這一點。 – Icarus

+0

一個問題至少是你使用的是一個按位運算符而不是OR運算符: 'if(ImageID!= null | ImageID!= DBNull.Value)'應該是if(ImageID!= null || ImageID!= DBNull.Value)' – Shad

+0

@ Shad:你是對的,但我認爲這不是不顯示圖像的原因。 – Priyanka

回答

1

可以完成幾乎同樣的事情,這樣做:

<asp:GridView ID="GridView1" AutoGenerateColumns="false" runat="server"> 
    <Columns> 
     <asp:ImageField HeaderText="Image" DataImageUrlField="ImagePath" /> 
    </Columns> 
</asp:GridView> 

和數據綁定到你的GridView是這樣的:

private void bindGridView() 
{ 
    DataTable t = new DataTable(); 
    t.Columns.Add("ImagePath"); 
    DataRow r = null; 
    for (int i = 0; i < 5; i++) 
    { 
     r = t.NewRow(); 
     r.ItemArray = new object[] { "images/couple24.png"}; 
     t.Rows.Add(r); 
    } 
    GridView1.DataSource = t; 
    GridView1.DataBind(); 
} 

也就是說,會產生類似:

enter image description here

我知道這並不回答你的問題,但我的意圖是給你一個ASP.NET功能的例子;有非常罕見的情況,你需要從你的標記中做Response.Write。

UPDATE:

很好,你想這樣做了錯誤的方式。你的錯誤是在這裏:

<img src='<%GetImage(dtCompany.Rows[0]["MDPriority"]);%>' 

它需要(通知=後<%):

<img src='<%=GetImage(dtCompany.Rows[0]["MDPriority"])%>' 

測試用例

///code behind 
public string GetImage(object ImageID) 
{ 
    return "images/couple24.png"; 
} 

markup: 
<img src='<%=GetImage("test")%>' /> 

呈現這樣的HTML :

<img src="images/couple24.png"> 
+0

我知道這一點,但我不想爲此使用任何服務器端控件。還有其他解決方案嗎? – Priyanka

+0

@Priyanka檢查我的更新。 – Icarus

+0

謝謝。它正在按我的要求工作。 – Priyanka

相關問題