昨天遇到一个需要在GridView中实现弹出提示框的问题,看了很多资料都不理想,可能是理解不够
最终还是使用html代码结合上后台代码实现了。方法好像有点怪怪的。
我想实现在GridView 空间中,单击“选定论文”列,提示信息,然后选择确定按钮的话,就向下执行,如果选择取消按钮就停止执行。
html代码 ,蓝色字体是实现提示框的主要部分。
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" CellPadding="4"
DataKeyNames="论文编号,状态名称" DataSourceID="SqlDataSource1" ForeColor="#333333" GridLines="None"
OnSelectedIndexChanged="GridView1_SelectedIndexChanged" Width="440px">
<FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<Columns>
<asp:TemplateField HeaderText="选定论文">
<ItemTemplate>
<asp:Button Width="30" runat="server" CommandName="Select" OnClientClick='return confirm("您要将这篇论文添加到自己的论文库么")' />
</ItemTemplate>
<ItemStyle CssClass="commandItemStyle" />
<HeaderStyle CssClass="commandHeaderStyle" />
</asp:TemplateField>
</Columns>
<RowStyle BackColor="#EFF3FB" />
<EditRowStyle BackColor="#2461BF" />
<SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
<PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
<HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<AlternatingRowStyle BackColor="White" />
</asp:GridView>
对应 CommandName="Select"的后台代码。用来实现继续执行的数据库操作
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
Common comm = new Common();
//将编辑选中的论文信息添加到T_BianJPL表中
Session["lunwbh"] = Convert.ToInt32(GridView1.DataKeys[GridView1.SelectedIndex]["LunWBH"]);
comm.ConnOpen();
SqlCommand command = new SqlCommand("Pro_BianJ_LunW", comm.getsqlconnection());
command.Parameters.Add(new sqlparameter("@lunwbh",SqlDbType.Int,4));
command.Parameters("@lunwbh").value=Convert.ToInt32(Session["lunwbh"]);
command.Parameters.Add(new sqlparameter("@zhucyhm",SqlDbType.VarChar,20));
command.Parameters("@zhucyhm").value = Convert.ToString(Session["ZhuCYHM"]);
command.ExecuteNonQuery();
comm.ConnClose();
Response.Write("<script>alert('已经把这篇论文放到您的论文库中!')</script>");
return;
}
题外话:
Gridview的RowCommand事件用法
当单击 GridView 控件中的按钮时发生次事件。
在单击 GridView 控件中的按钮时,将引发 RowCommand 事件。这使您可以提供一个这样的事件处理方法,即每次发生此事件时执行一个自定义例程。
GridView 控件中的按钮也可调用该控件的某些内置功能。若要执行这些操作之一,请将按钮的 CommandName 属性设置为下表中的某个值。
CommandName 值 |
说明 |
---|---|
“Cancel” |
取消编辑操作并将 GridView 控件返回为只读模式。引发 RowCancelingEdit 事件。 |
“Delete” |
删除当前记录。引发 RowDeleting 和 RowDeleted 事件。 |
“Edit” |
将当前记录置于编辑模式。引发 RowEditing 事件。 |
“Page” |
执行分页操作。将按钮的 CommandArgument 属性设置为“First”、“Last”、“Next”、“Prev”或页码,以指定要执行的分页操作类型。引发 PageIndexChanging 和 PageIndexChanged 事件。 |
“Select” |
选择当前记录。引发 SelectedIndexChanging 和 SelectedIndexChanged 事件。 |
“Sort” |
|
“Update” |
更新数据源中的当前记录。引发 RowUpdating 和 RowUpdated 事件。 |