2011-12-07 50 views
0

我的當前設置:
形式
下拉列表(由SQL填充)
用戶選擇DDL的項目,按[+(添加)]按鈕
有關此項目 SQL查詢在一個表中的值
新行,基於SQL的輸入值的細胞導致
行最後單元具有[ - (刪除)]按鈕刪除該行
用戶s可以做多次,因此表C#ASPX ASP.NET - 添加和刪除錶行

例如。

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

Researc h告訴我關於數據表的信息,但是從瀏覽器中不顯示爲表格的東西的外觀來看。我也讀過一堆不起作用的垃圾教程,所以我在這裏要問專業人士的問題!

任何幫助是非常讚賞:)

回答

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將被更新。

4

首先,我很驚訝你沒有在asp:Table標籤設置runat="server"

<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。

+0

道歉,雖然我意外忘記包含在我提供的示例代碼中。雖然代碼無效,但我非常感謝您的幫助,但您不必包含Google戳。 –

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