我想使用javascript爲asp頁面的元素分配一個csharp變量。看起來代理人不在我的代碼中工作。如何使用javascript將C#變量分配給asp元素
這就是:
document.getElementById('lbAccessories').innerHTML = '<%#SelectLabel%>';
在我的ASP代碼我使用:
<asp:LinkButton ID="lbAccessories" runat="server" />'
我不能直接值分配給LinkButton的使用Text='<%#SelectLabel%>'
,因爲我想讓它更加智能化。
有誰知道該怎麼做?
感謝
編輯:
這裏是我的代碼,我試圖用<%=lbAccessories.clientId%>
,但它會產生一個錯誤:lbAccessories不會在上下文中。
<script type="text/javascript">
function function(Ref) {
if ('<%=TextBoxClientID%>' == 'txtLink')
{
document.getElementById('lbAccessories').innerHTML = '<%#SelectLabel%>';
}
else if ('<%=TextBoxClientID%>' == 'btnSearch') {
document.getElementById('lbAccessories').innerHTML = '<%#ViewDetail%>';
}
}
</script>
編輯:
<asp:GridView ID="gv1" AutoGenerateColumns="false" runat="server"
AllowPaging="true" OnPageIndexChanging="pic">
<Columns>
<asp:TemplateField HeaderText="">
<ItemTemplate>
<asp:LinkButton ID="lbAccessories" runat="server" OnClientClick='<%#string.Format("passAccessory(\"{0}\");", Eval("Ref"))%>'></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
編輯:
非常感謝大家誰張貼了建議。
我已經改變了JavaScript代碼如下:
<script type="text/javascript">
function passAccessory(accessoryRef) {
if ('<%=TextBoxClientID%>' == 'txtLink') {
document.getElementById('<%= gvAccessories.FindControl("lbAccessories").ClientID %>').innerHTML = '<%#SelectLabel%>';
}
else if ('<%=TextBoxClientID%>' == 'btnSearch') {
document.getElementById('<%= gvAccessories.FindControl("lbAccessories").ClientID %>').innerHTML = '<%#ViewDetail%>';
}
}
</script>
在*.aspx.cs
文件,我已經補充說:protected LinkButton lbAccessories { get; set; }
它拋出一個異常:
Object reference not set to an instance of an object
任何人有想法?非常感謝
編輯:
最後,我們用CSHARP代碼做了。它更加靈活和易於管理。我的同事幫助了我。感謝大家的幫助!!!
javascript在鏈接按鈕被添加到DOM之前執行 – cspolton 2010-12-01 13:01:40
您似乎想要在單擊它時設置「LinkButton」的文本,但該按鈕將POST回到服務器點擊。這是你想要的嗎? – cspolton 2010-12-01 14:50:42
這是一個用戶控件。不同的頁面包含用戶控件。但是當加載不同的頁面時,視圖有點不同。所以我想用javascript來判斷不同的條件,並在位於gridview的`LinkButton`中顯示不同的內容。 – 2010-12-01 15:01:44