【问题标题】:How to get data from templet field in gridview如何从gridview中的模板字段获取数据
【发布时间】:2012-02-22 03:59:13
【问题描述】:

目前我正在做我最后一年的项目。 在在gridview中加载数据的网页中,每一行都有一个按钮,该按钮将弹出一个窗口并要求在**文本框**内写入错误并在服务器上提交该错误。 在服务器端我需要两个值,第一个是该行的主键和写在**文本框**中的错误。获取主键值很容易,但我无法在文本框中获取值。 我附上 .aspx 文件的代码:

<asp:GridView ID="gvPODetails" runat="server" DataSourceID="Inspection_SqlDataSource"
            EnableModelValidation="True" AllowSorting="True" AutoGenerateColumns="False"
            BackColor="#CCCCCC" BorderColor="Black" BorderStyle="Solid" BorderWidth="3px" CellPadding="4" ForeColor="Black" CellSpacing="2">
            <Columns>
                <asp:BoundField DataField="ProductCode" HeaderText="ProductCode" SortExpression="ProductCode" />
                <asp:BoundField DataField="MaterialCode" HeaderText="MaterialCode" SortExpression="MaterialCode" />
                <asp:TemplateField>
                    <ItemStyle BorderStyle="None" BorderColor="Transparent" BorderWidth="0px" />
                    <ItemTemplate>
                        <asp:LinkButton ID="lnkbtnOk" OnClick="Ok_Click" CommandArgument='<%# Eval("Identity")%>'
                            runat="server" Text="Ok"></asp:LinkButton>
                        <asp:LinkButton ID="lnkbtnReject" runat="server" Text="Reject"></asp:LinkButton>                        
                        <asp:Panel ID="popUp_Data" runat="server" CssClass="modelPopup" Style="display: none;">
                            <table style="padding: 10px 10px 10px 10px; width: 100%;">
                                <tr>
                                    <td>
                                    </td>
                                    <td align="right">
                                        <input id="close_popup" type="image" src="../Images/closebox.gif" />
                                    </td>
                                </tr>
                                <tr valign="top">
                                    <td align="right">
                                        <asp:Label ID="lblError" Text="Error" runat="server" CssClass="fontStyle"></asp:Label>
                                    </td>
                                    <td align="left">
                                        <asp:TextBox ID="txtError" runat="server" CssClass="ta"
                                            TextMode="MultiLine"></asp:TextBox>
                                    </td>
                                </tr>
                                <tr>
                                    <td>
                                    </td>
                                    <td align="left">
                                        <asp:Button ID="btnSubmit" runat="server" CssClass="sbmt" Text="Reject Item" OnClick="Reject_Click"
                                            CommandArgument='<%# Eval("Identity")%>' />
                                    </td>
                                </tr>
                            </table>
                        </asp:Panel>                               
                        <asp:ModalPopupExtender ID="popUp_Data_ModalPopupExtender" runat="server" DynamicServicePath=""
                            Enabled="True" BackgroundCssClass="modelBackground" PopupControlID="popUp_Data"
                            TargetControlID="lnkbtnReject" CancelControlID="close_popup">
                        </asp:ModalPopupExtender>
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
            <EmptyDataTemplate>
                <asp:Label runat="server" ID="lblNoDataFound" Text="No Machine Found."></asp:Label>
            </EmptyDataTemplate>
        </asp:GridView>

我想要的是 ID 为 txtError 的文本框内的数据。

【问题讨论】:

    标签: asp.net gridview


    【解决方案1】:

    由于它是重复项,因此您无法使用它的 id 直接访问它。您可以改用FindControl,如下所示:

    var textBoxAux = gridView.Rows[index].FindControl("txtError") as TextBox;
    

    您需要在您正在处理的事件中找到该行的索引

    编辑:查找索引...

    如果适用,请在CommandArgument(而不是身份)中传递DataItemIndex

    CommandArgument='<%# Container.DataItemIndex %>'
    

    参考:ASP.NET GridView RowIndex As CommandArgument

    【讨论】:

    • 谢谢...首先我比较了所有主要匹配值,但我显示了您的回复并将我的方法更改为有效的方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-12
    • 1970-01-01
    • 2014-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多