C#ASPX ASP.NET - Add&删除表格行

时间:2011-12-07 04:50:49

标签: c# javascript asp.net html

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

例如。

  

DDL:
  [值:123] [+]

     

表:
  |行#| ID |名字|姓氏|删除|
  | 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);  
}

研究告诉我有关DataTables的信息,但从事物的外观来看,它们不会在浏览器中显示为表格。我还阅读了一些不起作用的垃圾教程,所以我来这里问专业人员!

非常感谢任何帮助:)

4 个答案:

答案 0 :(得分:4)

首先,我很惊讶您没有在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。

答案 1 :(得分:3)

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

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

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

此方法还意味着单击按钮时会触发page_load事件并更新gridview。

答案 2 :(得分:1)

我建议使用GridView控件。我个人更喜欢Telerik控制套件。

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

答案 3 :(得分:1)

殴打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);
}