###前提・実現したいこと
EmptyDataTemplate内のコントロールの取得方法が知りたい。
イベント内のGridViewCommandEventArgsオブジェクトからのアクセスでなく
GridviewRowオブジェクトからのアクセスが希望です。
よろしくお願いします
###試したこと
NETで調べた以下をやっても該当のコントロールは取得できずNothingがもどってきました。
GridView1.Controls[0].Controls[0].FindControl("TextBox1");
<asp:GridView ID="gv1" runat="server" AutoGenerateColumns="False" GridLines="None" UseAccessibleHeader="False" Width="100%" BorderColor="#8D001C" BorderWidth="1px" ShowHeaderWhenEmpty="True"> <AlternatingRowStyle Wrap="False" /> <Columns> <asp:TemplateField ShowHeader="False"> <HeaderTemplate> <asp:Button ID="btnAddNew" runat="server" Text="Button" /> </HeaderTemplate> <ItemTemplate> <asp:Button ID="btnDelGv" runat="server" CausesValidation="false" CommandName="RowDelete" Text="削除" TabIndex="-1" CssClass="btn"/> </ItemTemplate> <ItemStyle VerticalAlign="Top" /> </asp:TemplateField> <asp:TemplateField HeaderText="連番"> <ItemTemplate> <asp:TextBox ID="ScSeq" runat="server" Text='<%# Bind("ScSeq")%>' Columns="1" TabIndex="-1"></asp:TextBox> </ItemTemplate> <ItemStyle VerticalAlign="Top" /> </asp:TemplateField> </Columns> <EmptyDataTemplate> <asp:Label ID="lblGridHeader" runat="server" Text="" CssClass="lblGridHeader"></asp:Label> <asp:Button ID="btnAddFirstRow" runat="server" CssClass="btn" OnClick="btnAddFirstRow_Click" Text="行追加" /> </EmptyDataTemplate> <HeaderStyle BackColor="#8D001C" BorderColor="#8D001C" BorderWidth="1px" ForeColor="White" HorizontalAlign="Left" Wrap="False" /> <RowStyle BorderColor="#BD284C" Wrap="False" /> <SelectedRowStyle BackColor="#64FFFF" /> </asp:GridView>
Protected Sub gv_RowCommand(sender As Object, e As GridViewCommandEventArgs) Handles gv1.RowCommand, gv2.RowCommand, gv3.RowCommand If gv1.Rows.Count = 0 Then Dim obj As Object = gv1.Controls(0).Controls(0).FindControl("btnAddFirstRow") obj.focus() End If End Sub
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/07/11 09:47
2016/07/11 13:06
2016/07/16 00:40
2018/10/25 01:08
2018/10/25 01:09