let it be
行到水穷处 坐看云起时

昨天遇到一个需要在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”

删除当前记录。引发 RowDeletingRowDeleted 事件。

“Edit”

将当前记录置于编辑模式。引发 RowEditing 事件。

“Page”

执行分页操作。将按钮的 CommandArgument 属性设置为“First”、“Last”、“Next”、“Prev”或页码,以指定要执行的分页操作类型。引发 PageIndexChangingPageIndexChanged 事件。

“Select”

选择当前记录。引发 SelectedIndexChangingSelectedIndexChanged 事件。

“Sort”

对 GridView 控件进行排序。引发 SortingSorted 事件。

“Update”

更新数据源中的当前记录。引发 RowUpdatingRowUpdated 事件。

 


 

posted on 2007-07-23 10:00  流浪浪  阅读(1579)  评论(4编辑  收藏  举报