2014-10-03 30 views
0

從後面HTML列表即時加載數據我的代碼(表): ASPOnserverclick和的onclick不起作用

<table id="tblClientes" class="display" cellspacing="0" width="100%"> 
    <thead> 
     <tr> 
      <th>Nombre</th> 
      <th>Razón Social</th> 
      <th>Teléfono</th> 
      <th>Email</th> 
      <th></th> 
      <th></th> 
     </tr> 
    </thead> 
    <tbody> 
     <asp:Literal runat="server" ID="tableData"></asp:Literal> 
    </tbody> 

和.CS(代碼隱藏)

tableData.Text += "<tr>"; 
       tableData.Text += "<td>" + cliente.Nombre + "</td>"; 
       tableData.Text += "<td>" + cliente.RazonSocial + "</td>"; 
       tableData.Text += "<td>" + cliente.Telefono + "</td>"; 
       tableData.Text += "<td>" + cliente.Email + "</td>"; 
       tableData.Text += "<td><a href='#' runat='server' onserverclick='btnCargarDatosCliente_Click' data-toggle='modal' data-target='#ventanaEmergente' id='btnCargarDatosCliente_" + cliente.Id.ToString() + "'>Editar</a></td>"; 
       tableData.Text += "<td><input type='button' data-toggle='modal' data-target='#ventanaAdvertencia' id='btnEliminarCliente_" + cliente.Id.ToString() + " value='Borrar' runat='server'/>Elimiar</td>"; 
       tableData.Text += "</tr>"; 

的onserverclick ='btnCargarDatosCliente_Click '不要打電話給事件。我曾嘗試與onclick,但同樣。

有人知道我做錯了嗎?

回答

1

它不這樣工作。如果將控件放置在runat =「server」的aspx表單上,並在服務器上處理該控件,並使用適當的javascript函數(如果指定類似於OnClick的事件)將輸出html返回給客戶端,並將表單發回表單。如果您像生成字符串一樣生成字符串並將其分配給字面值,那麼隨着服務器端處理已經發生,呈現「原樣」,所以runat =「server」在那裏沒有意義 - 它只是一個字符串。

爲了實現你想要的,我建議使用帶有LinkBut​​ton控件的Repeater控件。 Web上有很多示例/教程如何操作。

+0

這是正確的......如果您查看源代碼,您會注意到源代碼中的runat =「server」。如果它在ASPX頁面中正確使用而不是渲染數據,那麼runat =「server」將不會在您的視圖源中呈現 – 2014-10-03 20:38:15

0

我認爲你的問題可以使用LinkButtonHyperlink來代替錨標記來解決。