如何在asp.net中从javascript添加转发器控件中的新行

时间:2014-02-04 00:49:34

标签: javascript asp.net html5 asprepeater

我在Repeater控件中使用了以下HTML块。我可以从客户端(JavaScript)向HTML表添加行,并添加值。当页面通过单击按钮后退时,表格变空。但我也无法从服务器端的绑定转发器控件中获取值。它没有任何表现。如何从客户端向转发器添加值或使用HTML表绑定?

<table id="tblSelectlist" class="table table-striped table-bordered table-hover">
    <thead>
        <tr>
            <th>
                Name
            </th>
            <th class="hidden-480">
                City
            </th>
            <th class="hidden-480">
                State
           </th>
       </tr>
    </thead>
    <tbody>
        <asp:repeater id="repSelectlist" runat="server" enableviewstate="true">
            <ItemTemplate>
                <tr>
                    <td class="left">
                        <label id="lblSelectcompany" runat="server">
                            <%# DataBinder.Eval(Container.DataItem, "DataItem.CustName")%></a>
                        </label>
                    </td>
                    <td class="hidden-480">
                        <label id="lblSelectCity" runat="server">
                            <%# DataBinder.Eval(Container.DataItem, "DataItem.custCity")%>
                        </label>
                    </td>
                    <td>
                        <label id="lblSelectState" runat="server">
                            <%# DataBinder.Eval(Container.DataItem, "DataItem.custstate")%>
                        </label>
                    </td>  
                </tr>
            </ItemTemplate>
        </asp:repeater>
    </tbody>
</table>

如果我对HTML表使用runat="server",则会显示以下错误:

  

无法转换“System.Web.UI.WebControls.Repeater”类型的值   到'System.Web.UI.HtmlControls.HtmlTableRow'。

1 个答案:

答案 0 :(得分:0)

使用转发器控件的HeaderTemplate和FooterTemplate部分。

<asp:repeater id="repSelectlist" runat="server" enableviewstate="true">
<HeaderTemplate>
  <table id="tblSelectlist" class="table table-striped table-bordered table-hover">
  <thead>
  <tr>
  <th>
  Name
  </th>
  <th class="hidden-480">
  City
  </th>
  <th class="hidden-480">
  State
  </th>
  </tr>
  </thead>
  <tbody>
</HeaderTemplate>

<ItemTemplate>
 <tr>
 <td class="left">
 <label id="lblSelectcompany" runat="server">
 <%# DataBinder.Eval(Container.DataItem, "DataItem.CustName")%></a>
 </label>
 </td>
 <td class="hidden-480">
 <label id="lblSelectCity" runat="server">
 <%# DataBinder.Eval(Container.DataItem, "DataItem.custCity")%>
 </label>
 </td>
 <td>
 <label id="lblSelectState" runat="server">
 <%# DataBinder.Eval(Container.DataItem, "DataItem.custstate")%>
 </label>
 </td>                                                                              
 </tr>
</ItemTemplate>

<FooterTemplate>
  </tbody>
  </table>
</FooterTemplate>
</asp:repeater>