我想基于某些选定的搜索选项来获取一些学生条目,并希望将其与编辑和删除按钮相关联。
在上图中。通过单击搜索按钮。我正在生成学生列表以及相关的“编辑和删除”按钮。但这不是调用事件处理程序。 list With Buttons.
.aspx代码:
<div class="col-md-4">
<br />
<asp:TextBox runat="server" ID="search_text"></asp:TextBox>
<asp:LinkButton class="btn btn-primary" runat="server" OnClick="search_text_Click" ValidationGroup="submit">Search <i class="fa fa-angle-double-right"></i></asp:LinkButton>
</div>
<div class="row" runat="server">
<div class="col-md-12">
<asp:Panel runat="server" ID="ShowContentPanel" HorizontalAlign="Center"></asp:Panel>
</div>
</div>
.aspx.cs代码: 通过搜索按钮点击事件。
protected void search_text_Click(object sender, EventArgs e)
{
**Fetching the values**
Button button1 = new Button();
button1.Text = "Edit";
button1.ID = "Edit_" + id1 + "_" + id2;
button1.CssClass = "btn btn-info btn-md";
button1.Click += new EventHandler(Edit_Click);
ShowContentPanel.Controls.Add(button1);
Label space = new Label();
space.Text = " ";
ShowContentPanel.Controls.Add(space);
Button button2 = new Button();
button2.Text = "Delete";
button2.ID = "Del_" + id1 + "_" + id2;
button2.CssClass = "btn btn-warning";
button2.Click += new EventHandler(Delete_Click);
ShowContentPanel.Controls.Add(button2);
}
对于这些按钮,我们有两个事件处理程序
private void Edit_Click(object sender, EventArgs e)
{
}
private void Delete_Click(object sender, EventArgs e)
{
}
答案 0 :(得分:0)
ASP.NET完成页面呈现后,整个页面对象以及所有已创建的按钮(包括您通过代码添加的动态按钮)都会被破坏。
当用户单击“编辑”按钮时,页面再次回发,并且找不到“编辑”按钮。为什么?由于未在page_load
中添加按钮,因此仅当用户单击search_text
时才为往返创建按钮。因此按钮消失了,它的事件也不会触发。
在这种情况下,最好将控件添加到page_load事件中(正常方式)。如果只希望在用户单击某些文本时显示“编辑”按钮,则默认情况下将其“可见性”属性设置为false,并在用户单击文本时将其设置为true。这样,按钮始终存在,您不必担心创建按钮来处理事件。或者更好的方法是,仅使用CSS隐藏它,然后使用Javascript取消隐藏,这将使用户不必为了显示一个按钮而往返于服务器。