2009-12-31 183 views
1

我對.NET很陌生,而且這種感覺非常瘋狂。我想從我的數據庫中提取一個值,然後將其分配給一個可以傳入javascript的變量。打印價值很簡單,但對我無能爲力!將變量賦值給Repeater值

<asp:Repeater ID="Repeater3" runat="server" DataSourceID="SqlDataSource11"> 
<ItemTemplate> 
    <asp:BoundField DataField="videofile" /> 

     <%#DataBinder.Eval(Container.DataItem, "videofile")%> 

    <%=vidfile%> 
</ItemTemplate> 

錄像檔案是從數據庫中變量,vidfile是我想給它分配給變量。我也試過這個<%# vidfile = DataBinder.Eval(Container.DataItem, "videofile")%>,這給了我'假'的輸出。

幫助!

回答

2

請記住,如果您的變量「vidfile」是在javascript中聲明的,服務器不知道那是什麼。

ASP標籤內部執行的任何東西都嚴格在服務器的上下文中。如果您想將字符串分配給變量,您希望讓服務器將某些內容直接打印到呈現的頁面中。

還要記住,ASP標記<%= %>是「Response.Write()」的快捷方式,它將在輸出頁面中呈現一個字符串。將控件的屬性綁定到數據源或使用數據綁定方法時,可以使用該語法。

這樣的事情可能會爲你工作:

<asp:Repeater ID="Repeater3" runat="server" DataSourceID="SqlDataSource11"> 
<ItemTemplate> 
    <asp:BoundField DataField="videofile" /> 

    <script language="text/javascript"> 
     vidfile = '<%# DataBinder.Eval(Container.DataItem, "videofile", "{0}") %>' 
    </script> 
</ItemTemplate> 
+1

您還可以使用ASP.NET 2.0的 「簡化」 數據綁定語法和更新:<%#的eval( 「錄像檔案」)%> – Eilon 2010-01-01 00:11:31

+0

的問題是否必須在爲javascript準備好之前解析該值。我想我可以在JavaScript中解析,但更喜歡在.NET中進行。 '<%#vidfile = eval(「videofile」)%>也會產生'false'的輸出。這是兩個比較的說法嗎? – 2010-01-01 15:52:53

+0

好吧,我明白了!經過大約3天的苦苦掙扎後。感謝您的幫助。只需在JavaScript中使用Eval即可,然後使用Javascript進行分析。上帝,那感覺很好。 :) – 2010-01-02 05:03:10