GridView中的RowCommand事件

也是在这次项目开发遇到的问题,本来放在一起的,后来发现太长了,所有就分开来写.
不过都是一些非常简单的问题,怕忘记,在这里作一个记录.

GridView模版列中Button取值问题:
        <asp:GridView ID="GridView1" runat="server" DataKeyNames="id" AutoGenerateColumns="False" ShowHeader="False" Width="100%" OnRowDataBound="GridView1_RowDataBound" OnRowCommand="GridView1_RowCommand">
            
<Columns>
                
<asp:BoundField DataField="dept" >
                    
<ItemStyle Height="20px" Width="10%" HorizontalAlign="Center" />
                
</asp:BoundField>
                
<asp:BoundField DataField="deptnm" >
                    
<ItemStyle Width="15%" />
                
</asp:BoundField>
                
<asp:TemplateField>
                    
<ItemTemplate>
                        意见:
<asp:TextBox CssClass="inputLine" ID="txtNotion" runat="server" Width="300px"></asp:TextBox>
                    
</ItemTemplate>
                    
<ItemStyle Width="40%" />
                
</asp:TemplateField>
                
<asp:TemplateField>
                    
<ItemTemplate>
                        
<asp:HiddenField ID="hditem" runat="server" Value='<%# Eval("item") %>' />
                        
<asp:RadioButtonList ID="rblidea" runat="server" RepeatDirection="Horizontal" RepeatLayout="Flow">
                            
<asp:ListItem Value="1">同意</asp:ListItem>
                            
<asp:ListItem Value="0">不同意</asp:ListItem>
                        
</asp:RadioButtonList>
                    
</ItemTemplate>
                    
<ItemStyle HorizontalAlign="Center" Width="20%" />
                
</asp:TemplateField>
                
<asp:TemplateField>
                    
<ItemTemplate>
                        
<asp:Button ID="btnSubVise" CommandName="vise" CommandArgument='<%# Eval("id") %>' runat="server" Text="提 交" CssClass="Sub_button2" />&nbsp;
                        
<input id="ReSubVise" type="reset" value="重 置" class="Sub_button2" runat="server" />
                    
</ItemTemplate>
                    
<ItemStyle HorizontalAlign="Center" Width="15%" />
                
</asp:TemplateField>
            
</Columns>
        
</asp:GridView>

点击"提交"这个按钮,想取得"意见"这个TextBox的值.
        protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
        
{
            GridViewRow row 
= ((Control)e.CommandSource).BindingContainer as GridViewRow;
            
int index = row.RowIndex;

            
string strid = e.CommandArgument.ToString();

            
if (e.CommandName == "vise")
            
{
                
string strid = GridView1.DataKeys[index].Value.ToString();
                TextBox txtNotion 
= (TextBox)row.FindControl("txtNotion");

                Response.Write(txtNotion.Text.ToString());
            }

        }
e.CommandArgument是取CommandArgument='<%# Eval("id") %>'的值.index是取GridView中DataKeyNames="id"的值.
原文地址:https://www.cnblogs.com/cnaspnet/p/669410.html