注册 登录
编程论坛 ASP.NET技术论坛

GridView1_RowCommand 中取 ButtonField 的 各个值~~【**DisSun**】50分

dissun 发布于 2010-04-02 11:00, 2119 次点击
本人接触不久。有些弱智问题要问。能解答的请不吝解答下。
这个问题已经困扰我一天了,下入正题。

程序代码:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
                DataSourceID="Sqlnews" Width="907px" EmptyDataText="现在还没有任何信息"
                onrowdatabound="GridView1_RowDataBound"
                onrowcommand="GridView1_RowCommand">
                <Columns>
                    <asp:TemplateField HeaderText="审核">
                        <EditItemTemplate>
                            <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("disp") %>'></asp:TextBox>
                        </EditItemTemplate>
                        <ItemTemplate>
                            <asp:LinkButton ID="LBdisp" CommandArgument='<%#Eval("id") %>' runat="server"
                                Font-Underline="False" oncommand="LBdisp_Command"></asp:LinkButton>
                        </ItemTemplate>
                    </asp:TemplateField>

                    ///需要修改的字段***************************
                    <asp:ButtonField HeaderText="热点" DataField="hot"  CommandName="BFhot"  Text="yes" />
                    ///需要修改的字段结束*******************************

                    <asp:BoundField DataField="date" HeaderText="创建时间" SortExpression="date" />
                    <asp:HyperLinkField HeaderText="操作" Text="修改" />
                </Columns>
            </asp:GridView>

   
程序代码:
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        int rowIndex = Convert.ToInt16();
        GridViewRow row=GridView1.Rows[rowIndex];

        if ( == "BFhot")
        {
            string hot = GridView1.Rows[rowIndex].Cells[4].Text;      
            Response.Write("<script >alert('数据修改完成!*" + hot+ "');</script>");      
        }
     }


我希望在ROW_COMMAND中取得“热点”ButtonField的 Text值,还有就是 跟这个ButtonField绑定的数据字段"hot"的值。
但是我又不想把 这个ButtonField放在TemplateField里面。请问有办法吗。


[ 本帖最后由 dissun 于 2010-4-2 11:15 编辑 ]
8 回复
#2
dissun2010-04-02 15:10
帮主们,你们也不理我啊....解决不了吗?...
#3
hebingbing2010-04-02 15:41
看不大懂啥意思……
        if ( == "BFhot")
        {
            string hot = GridView1.Rows[rowIndex].Cells[4].Text;      
            Response.Write("<script >alert('数据修改完成!*" + hot+ "');</script>");      
        }

那你知道怎么给删除按钮加确认信息吗??
加强制类型转换,然后获取就行了
#4
saitor2010-04-02 19:56
不放进去的话,你应该string hot = GridView1.Rows[rowIndex].Cells[4].Text;这里就报错了。不怕麻烦的话用AJAX。
#5
misswang2010-04-03 08:52
哎...你的问题还不只有一点点呢...
#6
dissun2010-04-03 15:37
回复 楼主 dissun
RowCommand中的代码是错的,我试着取出 每行,第4列 的 ButtonField 的值,但不行,所以你可以不理,

只要能在RowCommand行为中 取出 ButtonField 的Text和与之绑定的字段值“hot”就行。
#7
hebingbing2010-04-03 17:48
哎……
你不能获取单元格的Text呀,你在单元格里面找控件,然后强转换成Button,然后获取Button的text呀
#8
dissun2010-04-03 19:15
老大爷,拜托~ 说了我接触不久。。。
你就写写代码,让俺看看嘛~~
是不是这样:
 string hot =((Button) GridView1.Rows[rowIndex].Cells[4].Controls[0]).Text;  
#9
dissun2010-04-06 20:10
看来无望了,结贴。
虽然无法解决问题,Thank you all the same楼上的。
1