GridViewで動的TextBoxとTextの値を取得

4560 ワード

親コントロールを取得してコントロールを検索する
フロント:
<asp:GridView ID="GridView1" runat="server" HeaderStyle-VerticalAlign="Middle" AutoGenerateColumns="false" CssClass="gridview" HeaderStyle-HorizontalAlign="Center">
                <Columns>
                    <asp:TemplateField HeaderText="******" ItemStyle-HorizontalAlign="Center" HeaderStyle-Width="50" ItemStyle-CssClass="rowid">
                        <ItemTemplate>
                            <%# DataBinder.Eval(Container.DataItem, "dwFishType")%>
                        </ItemTemplate>
                    </asp:TemplateField>
                    
                    <asp:TemplateField HeaderText="******" HeaderStyle-Width="100">
                        <ItemTemplate>
                            <%# DataBinder.Eval(Container.DataItem, "dwBulletScore").ToString()%>
                        </ItemTemplate>
                    </asp:TemplateField>
                    
                    <asp:TemplateField HeaderText="******" HeaderStyle-Width="100">
                        <ItemTemplate>
                            <%# DataBinder.Eval(Container.DataItem, "dwGameScore").ToString()%>
                        </ItemTemplate>
                    </asp:TemplateField>
                    
                    <asp:TemplateField HeaderText="******" HeaderStyle-Width="100">
                        <ItemTemplate>
                            <%# DataBinder.Eval(Container.DataItem, "dwFactLines").ToString()%>
                        </ItemTemplate>
                    </asp:TemplateField>
                    
                    <asp:TemplateField HeaderText="******" HeaderStyle-Width="100">
                        <ItemTemplate>
                            <%# DataBinder.Eval(Container.DataItem, "dwCurLines").ToString()%>
                        </ItemTemplate>
                    </asp:TemplateField>
                    
                    <asp:TemplateField HeaderText="******" HeaderStyle-Width="100">
                        <ItemTemplate>
                            <%# DataBinder.Eval(Container.DataItem, "dwAccuracy").ToString()%>
                        </ItemTemplate>
                    </asp:TemplateField>
                                        
                    <asp:TemplateField HeaderText="******" HeaderStyle-Width="100">
                        <ItemTemplate>
                            <%# DataBinder.Eval(Container.DataItem, "dwFishScore").ToString()%>
                        </ItemTemplate>
                    </asp:TemplateField>
                    
                    <asp:TemplateField HeaderText="******" HeaderStyle-Width="100">
                        <ItemTemplate>
                            <asp:Panel ID="Panel1" DefaultButton="Button1" runat="server">
                                <asp:TextBox ID="txtBox" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "dwAccuracy").ToString() %>' Width="50" Height="25" BorderStyle="none" />
                                <asp:Button ID="Button1" Text=" " runat="server" Width="50" Height="25" Enabled="true" OnClick="btnChange" ToolTip='<%# DataBinder.Eval(Container.DataItem, "dwFishType").ToString() %>' />   
                            </asp:Panel>
                        </ItemTemplate>
                        
                    </asp:TemplateField>
                </Columns>
            </asp:GridView>

バックグラウンド:
protected void btnChange(object sender, EventArgs e)
    {
        Button bt = (Button)sender;
        string TextValue = "";
        Panel pan = (Panel)bt.Parent;
        TextBox txt = (TextBox)pan.FindControl("txtBox");
        TextValue = txt.Text.ToString();
        Response.Write("<script>alert('" + TextValue + "'); history.go(-1);</script>");
    }