0

我正在构建一个基于 CRUD 的 ASP.NET 网站,我已经进入了项目的阶段,我正在尝试构建一个搜索网页,根据用户输入的参数向用户显示某个重要表的不同子集,例如作为日期和不同的文本字段。

我不能使用固定的 SQL 语句,因为根据他们是按日期搜索还是按其他方式搜索,SQL 会有所不同,所以我一直使用表格 Web 控件生成结果列表,该控件开始时是不可见的,然后是一旦用户确定他们想要进行的搜索,就会填充并设置为可见。我使用了表控件,因为它易于在后面的代码中创建和修改,并且我能够对数据库进行所需的调用并根据需要填充该表。

但是,我需要此搜索页面的第二件事是允许用户从结果中选择一条记录,然后使用站点上基于 CRUD 的其余页面对其进行编辑。为此,我在表中创建了 asp:buttons 并为它们提供了所有不同的 id 和相同的事件处理程序。但由于我动态创建了按钮,似乎事件在回调时消失了,我的方案失败了,所以我再看看如何做到这一点。

我当前的事件代码如下所示:

 tempcell = new TableCell();
 Button tempbutton = new Button();
 tempbutton.Text = "Go";
 tempbutton.ID = "gobutton" + rowN;
 tempbutton.Visible = true;
 tempbutton.Click += new EventHandler(tempbutton_Click);
 tempcell.Controls.Add(tempbutton);
 temprow.Cells.Add(tempcell);

我的结果表声明如下:

<asp:Table ID="ResultTable" visible="false" runat="server" 
GridLines="Both" CellSpacing="8">
</asp:Table>

我希望能够识别用户选择的记录,以便我可以将该信息发送到另一个页面。当然,我仍然需要能够为几个不同的搜索条件生成结果。目前我有基于日期、模板和代码的搜索,这些搜索会根据用户输入的内容导致不同的存储过程和不同的参数。

对此有何建议?似乎数据网格和转发器需要提前 SQL 语句才能正常工作,所以我不确定如何使用它们,但如果可以的话,项目命令方法将与按钮一起使用。

4

1 回答 1

1

如果在页面加载事件中重新创建按钮,您的事件将成功连接。

否则,请使用 GridView。它是简单 CRUD 的完美解决方案,您可以根据需要对其进行控制。

于 2009-04-02T15:11:34.847 回答