【问题标题】:Text boxes inside EmptyDataTemplate not accessibleEmptyDataTemplate 中的文本框无法访问
【发布时间】:2017-10-06 10:30:08
【问题描述】:

我有一个使用 EmptyDataTemplate 的 ASP.NET GridView。在 EmptyDataTemplate 内,我有一些文本框和一个用于插入记录的提交按钮。当我尝试访问代码隐藏文件中的 ID 时,它们没有显示出来。

我的代码:

<asp:GridView ID="gv" runat="server" AutoGenerateColumns="False" BackColor="White"
        BorderColor="#DEDFDE" BorderStyle="None" BorderWidth="1px" CellPadding="4" ForeColor="Black"
        GridLines="Vertical">
        <AlternatingRowStyle BackColor="White" />
        <Columns>
            <asp:BoundField DataField="BankName" HeaderText="Bank Name" />
            <asp:BoundField DataField="IFSCCode" HeaderText="IFSC Code" />
            <asp:BoundField DataField="MICRCODE" HeaderText="MICR Code" />
            <asp:BoundField DataField="BranchName" HeaderText="Branch Name" />
            <asp:BoundField DataField="Address" HeaderText="Address" />
        </Columns>
        <EmptyDataTemplate>
            <div style="border: 1px solid #ccc; width: auto; margin: 20px 470px;">
                <table border="0" cellpadding="2" cellspacing="0">
                    <tr>
                        <th colspan="3" bgcolor="#1e7c9a" style="color: White">
                            Please Enter Your Bank Details
                        </th>
                    </tr>
                    <tr>
                        <td>
                            Bank Name
                        </td>
                        <td>
                            <asp:TextBox ID="txtBankname" runat="server" Width="180px" />
                        </td>
                        <td>
                            <asp:RequiredFieldValidator ID="RequiredFieldValidator1" ErrorMessage="Required"
                                ForeColor="Red" ControlToValidate="txtBankname" runat="server" Width="120" />
                        </td>
                    </tr>
                    <tr>
                        <td>
                            IFSC Code
                        </td>
                        <td>
                            <asp:TextBox ID="txtIfsccode" runat="server" Width="180px" />
                        </td>
                        <td>
                           <asp:RequiredFieldValidator ID="RequiredFieldValidator2" ErrorMessage="Required"
                                ForeColor="Red" ControlToValidate="txtIfsccode" runat="server" />
                        </td>
                    </tr>
                    <tr>
                        <td>
                            MICR Code
                        </td>
                        <td>
                            <asp:TextBox ID="txtMicrcode" runat="server" Width="180px" />
                        </td>
                        <td>
                            &nbsp;
                        </td>
                    </tr>
                    <tr>
                        <td>
                            Branch Name
                        </td>
                        <td>
                            <asp:TextBox ID="txtBranchName" runat="server" Width="180px" />
                        </td>
                        <td>
                           <asp:RequiredFieldValidator ID="RequiredFieldValidator3" ErrorMessage="Required"
                                Display="Dynamic" ForeColor="Red" ControlToValidate="txtBranchName" runat="server" />
                        </td>
                    </tr>
                    <tr>
                        <td>
                            Address
                        </td>
                        <td>
                            <asp:TextBox ID="txtAddress" runat="server" TextMode="MultiLine" />
                        </td>
                        <td>
                            <asp:RequiredFieldValidator ID="RequiredFieldValidator4" ErrorMessage="Required"
                                ForeColor="Red" ControlToValidate="txtAddress" runat="server" />
                        </td>
                    </tr>
                    <tr>
                        <td>
                        </td>
                        <td>
                            <asp:Button ID="btn" Text="Submit" runat="server" OnClick="InsertDetails"/>
                        </td>
                        <td>
                        </td>
                    </tr>
                </table>
            </div>
        </EmptyDataTemplate>
        <FooterStyle BackColor="#CCCC99" />
        <HeaderStyle BackColor="#1e7c9a" Font-Bold="True" ForeColor="White" />
        <PagerStyle BackColor="#F7F7DE" ForeColor="Black" HorizontalAlign="Right" />
        <RowStyle BackColor="#F7F7DE" />
        <SelectedRowStyle BackColor="#CE5D5A" Font-Bold="True" ForeColor="White" />
        <SortedAscendingCellStyle BackColor="#FBFBF2" />
        <SortedAscendingHeaderStyle BackColor="#848384" />
        <SortedDescendingCellStyle BackColor="#EAEAD3" />
        <SortedDescendingHeaderStyle BackColor="#575357" />
    </asp:GridView>

【问题讨论】:

  • 如果您对控件使用 Visible=False,请将其删除并使用 css 规则 display:none。
  • 我想从 EmptyDataTemplate 中的 TextBoxes 中获取值并将新记录插入到我的数据库中。我的问题是在后面的代码中无法访问 ID。
  • 你能分享函数背后的代码

标签: c# asp.net gridview code-behind emptydatatext


【解决方案1】:

试试这个

Button Insert_Details = gv.Controls[0].Controls[0].FindControl("btn") as Button ;

你可以看到这个EXAMPLE

【讨论】:

  • 谢谢。它真的很有帮助。下面的 id 是什么: TextBox BankName = gv.Controls[0].Controls[0].FindControl("txtBankname") as TextBox; cmd.Parameters.AddWithValue("@BankName", BankName.Text);文本框 IFSCcode = gv.Controls[0].Controls[0].FindControl("txtIfsccode") as TextBox; cmd.Parameters.AddWithValue("@IFSCcode", IFSCcode.Text);
  • 祝你好运 :) 如果这对你有用。你能接受这个答案还是投票赞成这个答案
【解决方案2】:

OP 的解决方案。

按如下方式完成:

TextBox BankName = gv.Controls[0].Controls[0].FindControl("txtBankname") as TextBox;
cmd.Parameters.AddWithValue("@BankName", BankName.Text );
TextBox IFSCcode = gv.Controls[0].Controls[0].FindControl("txtIfsccode") as TextBox;
cmd.Parameters.AddWithValue("@IFSCcode", IFSCcode.Text);
TextBox MICROCODE = gv.Controls[0].Controls[0].FindControl("txtMicrcode") as TextBox;
cmd.Parameters.AddWithValue("@MICROCODE",MICROCODE.Text);
TextBox BranchName = gv.Controls[0].Controls[0].FindControl("txtBranchName") as     TextBox;
cmd.Parameters.AddWithValue("@BranchName",BranchName.Text);
TextBox BankAddress = gv.Controls[0].Controls[0].FindControl("txtAddress") as TextBox;
 cmd.Parameters.AddWithValue("@BankAddress", BankAddress.Text);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-23
    相关资源
    最近更新 更多