我正在构建一个基于 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 语句才能正常工作,所以我不确定如何使用它们,但如果可以的话,项目命令方法将与按钮一起使用。