2014-04-02 27 views
0

我試圖綁定一個變量數據到輸入控件作爲屬性的值,但vs2010會拋出一個警告:「驗證(XHTML 1.0 Transitional):屬性值必須是用引號括起來。「asp.net引用數據綁定中的問題

誰能告訴我如何解決它?

這裏是我的代碼:

<input type="button" id="btn_jump" runat="server" onclick=<%#"javascript:window.location.href='Default.aspx?var=" + m_id + "'" %> value="jump"/>

我已經低於這些嘗試,但得到一個錯誤:「服務器標記的格式不正確」

<input type="button" id="btn_jump" runat="server" 
onclick="<%#"javascript:window.location.href='Default.aspx?var=" + m_id + "'" %>" value="jump"/> 

<input type="button" id="btn_jump" runat="server" 
onclick='<%#"javascript:window.location.href='Default.aspx?var=" + m_id + "'" %>' value="jump"/> 

這裏是正確的解決方案:

方法1:

btn_jump.Attributes.Add("onclientclick","javascript:window.location.href='Default.aspx?var=" + m_id + "'"); 

方法2:

<input type="button" id="btn_jump" runat="server" 
onclick='<%#"javascript:window.location.href=\"Default.aspx?var=" + m_id + "\"" %>' value="jump"/> 

回答

0

您應該使用OnclientClick。做下面的方法。

<input type="button" id="btn_jump" runat="server" 
onclientclick='redirect(<%#Eval("m_id")%>)' value="jump"/> 


function redirect(id) { 
    location.href = 'Default.aspx?var=' + id; 
} 

或使用eval佔位

<input type="button" id="btn_jump" runat="server" 
onClientClick='<%# Eval("m_id", "location.href=Default.aspx?var={0}") %>' value="jump"/> 

或者添加從代碼的OnClientClick屬性後面

btn_jump.Attributes.Add("onclientclick","javascript:window.location.href='Default.aspx?var=" + m_id + "'"); 
+0

非常感謝你,這種方法可以工作well.but我有五個按鈕重定向到不同的頁面,所以我需要添加五個javascript函數,這太複雜了,就像我的方式,頁面一樣是除了警告之外的作品。 – Sanycn

+0

我用更多的選項編輯了我的答案。 –

+0

沒有單引號的location.href鏈接無法重定向,而我的變量「m_id」不是數據庫字段而是代碼隱藏變量,所以我們不能使用eval()函數。 – Sanycn