我目前的设置:
形成
下拉列表(由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的信息,但从事物的外观来看,它们不会在浏览器中显示为表格。我还阅读了一些不起作用的垃圾教程,所以我来这里问专业人员!
非常感谢任何帮助:)
答案 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);
}