Asp.net 获取文本框OnTextChanged上3个深嵌套列表的行/列

Asp.net 获取文本框OnTextChanged上3个深嵌套列表的行/列,asp.net,Asp.net,我正在尝试更改文本框的行和列位置 如果执行以下操作,我可以获取列位置: TextBox txtScore = sender; ListViewItem item = (ListViewItem)txtScore.NamingContainer; int col = ((ListView)item.NamingContainer).DataKeys(item.DataItemIndex).Values(0); 直到我将下面的代码段转换为用户控件为止 代码片段 <asp:ListView

我正在尝试更改文本框的行和列位置

如果执行以下操作,我可以获取列位置:

TextBox txtScore = sender;
ListViewItem item = (ListViewItem)txtScore.NamingContainer;
int col = ((ListView)item.NamingContainer).DataKeys(item.DataItemIndex).Values(0);
直到我将下面的代码段转换为用户控件为止

代码片段

 <asp:ListView ID="techs" runat="server" ItemPlaceholderID="lvItemPlaceholder" DataKeyNames="Number"
        OnItemDataBound="techs_ItemDataBound">
        <LayoutTemplate>
            <asp:PlaceHolder runat="server" ID="lvItemPlaceholder" />
        </LayoutTemplate>
        <ItemTemplate>
            <tr>
                <td>
                    Tech
                    <%# Eval("Number")%>
                </td>
                <td>
                    <asp:TextBox ID="tech" runat="server" Text='<%# Eval("Name") %>' />
                </td>
                <asp:ListView ID="scorePatterns" runat="server" ItemPlaceholderID="lvScorePatternsItemPlaceholder"
                    OnItemDataBound="scorePatterns_ItemDataBound" DataKeyNames="Ref">
                    <LayoutTemplate>
                        <asp:PlaceHolder runat="server" ID="lvScorePatternsItemPlaceholder" />
                    </LayoutTemplate>
                    <ItemTemplate>
                        <td>
                            <table>
                                <asp:ListView ID="scores" runat="server" ItemPlaceholderID="lvScoresItemPlaceholder"
                                    OnItemDataBound="scores_ItemDataBound" DataKeyNames="Ref,Instance">
                                    <LayoutTemplate>
                                        <asp:PlaceHolder runat="server" ID="lvScoresItemPlaceholder" />
                                    </LayoutTemplate>
                                    <ItemTemplate>
                                        <tr>
                                            <td>
                                                <asp:TextBox runat="server" ID="txtScore" Width="50" AutoPostBack="true" OnTextChanged="txtScore_TextChanged" />
                                            </td>
                                        </tr>
                                    </ItemTemplate>
                                </asp:ListView>
                            </table>
                        </td>
                    </ItemTemplate>
                </asp:ListView>
                <td>
                    <asp:Label runat="server" ID="lblDate" Text='<%# Eval("Date") %>' />
                </td>
            </tr>
    </ItemTemplate>

技术人员

该代码有效吗?您可以直接访问
txtScore
吗?它一直工作,直到我将它放在控件中,然后[int col]部分断开。您不应该像那样直接访问
txtScore
。它包含在一个数据绑定控件中。。。