首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在ControlParameter 'ParamName‘中找到控件’ParamName‘

无法在ControlParameter 'ParamName‘中找到控件’ParamName‘
EN

Stack Overflow用户
提问于 2014-09-12 15:58:20
回答 1查看 1.4K关注 0票数 1

好吧,伙计们,我知道这个问题已经问过无数次了。我已经搜索了好几天了,没有一种在线解决方案对我有效。这是我的密码:

代码语言:javascript
复制
<asp:SqlDataSource
                ID="SqlDataSource2"
                runat="server"
                ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
                ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>"
                SelectCommand="SELECT VTPNAME, NETWORKKEY, FKVTPDOMAIN, VLANNUMBER, NETDESCRIPTION, BEGINNINGIP, 
                                   HOSTS, DEFAULTGATEWAY FROM NETWORK.NETWORK, NETWORK.VTPDOMAIN WHERE  
                                   NETWORK.FKVTPDOMAIN = VTPDOMAIN.VTPDOMAINKEY"
                DeleteCommand="DELETE FROM NETWORK.NETWORK WHERE NETWORKKEY =: NETWORKKEY"
                UpdateCommand="UPDATE NETWORK.NETWORK SET FKVTPDOMAIN =:updateFKVTP, VLANNUMBER = :VLANNUMBER,
                               NETDESCRIPTION = :NETDESCRIPTION,BEGINNINGIP = :BEGINNINGIP,
                               HOSTS = :HOSTS,DEFAULTGATEWAY = :DEFAULTGATEWAY WHERE NETWORKKEY = :NETWORKKEY"
                InsertCommand="INSERT INTO NETWORK.NETWORK (VLANNUMBER,NETDESCRIPTION,BEGINNINGIP,HOSTS,DEFAULTGATEWAY,FKVTPDOMAIN) VALUES (:vlanNet,:descNet,:begIpNet,:hostNet,:defNet,:vtpdomainkey)">
                <InsertParameters>
                    <asp:ControlParameter Name="vlanNet" ControlID="vlanTextbox" />
                    <asp:ControlParameter Name="descNet" ControlID="descTextbox" />
                    <asp:ControlParameter Name="begIpNet" ControlID="beginIPTextbox" />
                    <asp:ControlParameter Name="hostNet" ControlID="hostsTextbox" />
                    <asp:ControlParameter Name="defNet" ControlID="defaultGatTextBox" />
                    <asp:ControlParameter Name="vtpdomainkey" ControlID="vtpDomainFKDropDown" />
                </InsertParameters>
                <UpdateParameters>
                    <asp:ControlParameter Name="updateFKVTP" ControlID="vtpNameDropDownUpdate" />
                </UpdateParameters>
            </asp:SqlDataSource>

            <asp:GridView
                ID="GridView2"
                runat="server"
                AutoGenerateColumns="False"
                DataSourceID="SqlDataSource2"
                AllowPaging="True"
                AllowSorting="True"
                DataKeyNames="NETWORKKEY"
                Width="650px"
                OnRowUpdating="GridView2_RowUpdating">
                <Columns>
                    <asp:CommandField HeaderText="Options" ShowDeleteButton="True" ShowEditButton="True" />
                    <asp:TemplateField HeaderText="VTP Domain" SortExpression="VTPNAME">
                        <EditItemTemplate>
                            <asp:DropDownList ID="vtpNameDropDownUpdate" runat="server" DataSourceID="SqlDataSource6" DataTextField="VTPNAME" DataValueField="VTPDOMAINKEY">
                            </asp:DropDownList>
                        </EditItemTemplate>
                        <ItemTemplate>
                            <asp:Label ID="Label2" runat="server" Text='<%# Bind("VTPNAME") %>'></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>

以下是给出的实际错误:

代码语言:javascript
复制
Could not find control 'vtpNameDropDownUpdate' in ControlParameter 'updateFKVTP'.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.InvalidOperationException: Could not find control 'vtpNameDropDownUpdate' in ControlParameter 'updateFKVTP'.

除了之外,一切都按预期的方式工作。它不会找到它,我试过美元符号,冒号,下划线,你命名它,告诉它的控制在哪里,但没有结果。它们是一样的,它们都躺在另一个下面,就像我在这里贴的一样。我得到了要实际更新的第一行,因为我尝试了在运行时右键单击下拉列表的方法,然后“检查元素”,然后将整个ControlID字符串复制并粘贴到ControlParameter ControlID中。问题是,有几行,所以它只适用于我检查过的一个元素,而不是所有其他元素。任何帮助都将不胜感激,并提前感谢您的时间!

-Fernando

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-12 17:13:30

DropDownList位于模板控件内部,因此您应该可以找到模板控件first.In --这个示例模板控件位于Gridview的第7列。在查找模板之后,您可以找到DropDownList:

代码语言:javascript
复制
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {
        var index = e.RowIndex;
var dropDownctr=   GridView1.Rows[index].Controls[6].FindControl("vtpNameDropDownUpdate")       

    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25812294

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档