【问题标题】:C# ASPX ASP.NET - Add & Delete Table RowC# ASPX ASP.NET - 添加和删除表格行
【发布时间】:2012-01-14 16:23:53
【问题描述】:

我目前的设置:
表格
下拉列表(由 SQL 填充)
用户从 DDL 中选择一个项目,按 [+ (add)] 按钮
对此项目值的 SQL 查找
表中的新行,基于 SQL 结果的输入值单元格
行中的最后一个单元格有一个 [- (delete)] 按钮来删除该行
用户可以多次执行此操作,因此表格

例如。

DDL:
[值:123] [+]

表格:
|行# |身份证 |名字 |姓氏 |删除 |
| 1 | 123 |约翰 |史密斯 | X |

更好的解决方案?在继续之前告诉我您是否能想到更好的方法...

问题是我找不到使用 C#/ASP 向表中动态添加行的方法。

最好,我需要一些 ASP 函数来动态地执行此操作(或次佳)。我可以接受 Javascript Adhoc,但我试图避免这种情况,因为我需要添加到新表行的数据是通过 SQL 获取的。

目前这是我迄今为止的损坏代码(只是您需要的东西):

Default.aspx:

<asp:DropDownList>
    <asp:Item>1</asp:Item>
    <asp:Item>2</asp:Item>
    <asp:Item>3</asp:Item>
</asp:DropDownList>

<input type="button" onClick="AddRow()" runat="server" />`

<asp:Table id="aTable" name="aTable">  
<asp:TableHeaderRow>  
    <asp:TableHeaderCell>1</asp:TableHeaderCell>
    <asp:TableHeaderCell>2</asp:TableHeaderCell>
    <asp:TableHeaderCell>3</asp:TableHeaderCell>
    <asp:TableHeaderCell>4</asp:TableHeaderCell>
    <asp:TableHeaderCell>5</asp:TableHeaderCell>
    <asp:TableHeaderCell>6</asp:TableHeaderCell>  
</asp:TableHeaderRow> 

</asp:Table>

Default.aspx.cs:

protected void AddRow(object sender, EventArgs e) {  
    Table table = new Table();  
    table.ID = "aTable";
    TableRow row = new TableRow();  
    TableCell cell = new TableCell();  
    table.Rows.Add(row);  
    cell.Text = "Test";  
    row.Cells.Add(cell);  
    row.Cells.Add(cell);  
    row.Cells.Add(cell);  
    row.Cells.Add(cell);  
    row.Cells.Add(cell);  
    row.Cells.Add(cell);  
}

Research 告诉我有关 DataTables 的信息,但从外观上看,这些不会在浏览器中显示为表格。我也看了一堆没用的垃圾教程,所以特地来问问SO的高手!

非常感谢任何帮助:)

【问题讨论】:

    标签: c# javascript asp.net html


    【解决方案1】:

    首先,我很惊讶您没有将runat="server" 设置为asp:Table 标签。

    <asp:Table id="aTable" name="aTable" runat="server">  
    

    其次,从后面的代码来看,可以直接使用aTable对象。

    protected void AddRow(object sender, EventArgs e) {  
        TableRow row = new TableRow();  
        TableCell cell = new TableCell();  
        aTable.Rows.Add(row);  
        cell.Text = "Test";  
        row.Cells.Add(cell);  
        row.Cells.Add(cell);  
        row.Cells.Add(cell);  
        row.Cells.Add(cell);  
        row.Cells.Add(cell);  
        row.Cells.Add(cell);  
    }
    

    第三,有很多资源可以学习。使用谷歌。

    【讨论】:

    • 抱歉,虽然我不小心忘记包含在我提供的示例代码中,但我做到了。虽然代码不起作用,但我感谢您的帮助,但您不必包含 Google jab。
    【解决方案2】:

    被打了 3 分钟……但还是这样。

    <asp:Button ID="button1" runat="server" OnClick="AddRow" />
    <asp:Table id="aTable" name="aTable" runat="server">  
        <asp:TableHeaderRow>  
            <asp:TableHeaderCell>1</asp:TableHeaderCell> 
        </asp:TableHeaderRow> 
    </asp:Table>
    
    protected void AddRow(object sender, EventArgs e)
    {
        TableRow row = new TableRow();
        TableCell cell = new TableCell();
        cell.Text = "hello";
        row.Cells.Add(cell);
    
        aTable.Rows.Add(row);
    }
    

    【讨论】:

      【解决方案3】:

      我会推荐使用 GridView 控件。我个人更喜欢 Telerik 控制套件。

      这是一个链接http://www.asp.net/web-forms/tutorials/tailspin-spyworks/tailspin-spyworks-part-4

      【讨论】:

        【解决方案4】:

        使用GridView 会更好。这些可以很容易地设置为示例中的 SQL 数据源。

        也可以不在 aspx 页面中设置数据源,然后在 page_load 事件中你可以做这样的事情:

        Protected void Page_Load(object sender, EventArgs e)
        {
            GridView.DataSource = Webservice.someMethodCall(param1, param2);
            GridView.DataBind();
        }
        

        这种方式也意味着当点击按钮时会触发 page_load 事件并更新gridview。

        【讨论】:

          猜你喜欢
          • 2013-02-12
          • 1970-01-01
          • 1970-01-01
          • 2018-08-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-04-18
          • 2018-10-11
          相关资源
          最近更新 更多