我正在构建一个基于CRUD的ASP.NET网站,我已经到了项目的阶段,我正在尝试构建一个搜索网页,根据参数向用户显示某个重要表的不同子集他们输入日期和不同的文本字段。
我不能使用固定的SQL语句,因为根据它们是按日期还是按其他方式搜索,SQL会有所不同,所以相反,我一直在使用一个开始不可见的表Web控件生成结果列表然后在用户识别出他们想要进行的搜索后填充并设置为可见。我使用了一个表控件,因为它易于在后面的代码中创建和修改,并且我能够对数据库进行必要的调用并根据需要填充该表。
然而,我在这个搜索页面需要的第二件事是,允许用户从结果中选择一条记录,然后使用网站上其余的基于CRUD的页面进行编辑。为此,我在表中创建了asp:按钮,并为它们提供了所有不同的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语句才能正常工作,所以我不知道如何使用它们,但如果可以的话,那么项目命令方法可以用于按钮。
答案 0 :(得分:1)
如果在页面加载事件中重新创建按钮,您的事件将成功挂钩。
否则,请使用GridView。它是简单CRUD的完美解决方案,您可以根据需要进行控制。