Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript asp.net gridview中的面板-如何在jquery中找到它?_Javascript_Jquery_Asp.net - Fatal编程技术网

Javascript asp.net gridview中的面板-如何在jquery中找到它?

Javascript asp.net gridview中的面板-如何在jquery中找到它?,javascript,jquery,asp.net,Javascript,Jquery,Asp.net,我在gridview里有一个面板。 当我在网格视图中单击单选按钮时,我调用jquery click事件 点击单选按钮。这部分工作正常…现在我需要引用gridview中的面板,但我不能使用$this,因为它引用了我的radiobuttonlist,我想它是这样的 我怎样才能获得此面板的参考 $("#MainContent_gvLineItems input[id*='rbAnswer']").click(function () { var p

我在gridview里有一个面板。 当我在网格视图中单击单选按钮时,我调用jquery click事件 点击单选按钮。这部分工作正常…现在我需要引用gridview中的面板,但我不能使用$this,因为它引用了我的radiobuttonlist,我想它是这样的

我怎样才能获得此面板的参考

            $("#MainContent_gvLineItems input[id*='rbAnswer']").click(function () {
                var p = $(this).find('[id$=MainContent_gvLineItems_pnlAnswer]'); // find the panel but this wont work so what can I do here?
            });
我不知道我的语法对于id$=MainContent\u gvLineItems\u pnlAnswer是否正确,因为网格视图中的每一行的面板id都会更改

编辑 以下是一些网格视图:

<asp:TemplateField HeaderText="Answer">
                            <ItemTemplate>
                               <div id="dMainAnswer">
                                <asp:RadioButtonList ToolTip="Please provide an answer to the method." RepeatDirection="Horizontal" ID="rbAnswer" runat="server" SelectedValue='<%# DataBinder.Eval(Container, "DataItem.AnswerID")%>'>
                                    <asp:ListItem Text="Yes" Value="Yes" style="color:green;"></asp:ListItem>
                                    <asp:ListItem Text="No" Value="No" style="color:red;"></asp:ListItem>
                                    <asp:ListItem Text="N/A" Value="N/A" style="color:gray;"></asp:ListItem>
                                    <asp:ListItem Value="" Text="" style="display: none" />
                                </asp:RadioButtonList>
                                   <asp:Panel ID="pnlAnswer" runat="server" Visible="False">
                                       <div id="dMainAnswerResponsibleType">
                                            <asp:RadioButtonList ID="rbRespType" ToolTip="Select responsible contact type." runat="server" RepeatDirection="Horizontal" AutoPostBack="true" SelectedValue='<%# DataBinder.Eval(Container, "DataItem.ResponsiblePartyType")%>' OnSelectedIndexChanged="rbRespType_SelectedIndexChanged">
                                                <asp:ListItem Selected="True" Text="TKSE" Value="TKSE">TKSE</asp:ListItem>
                                                <asp:ListItem Text="Other" Value="Other">Other</asp:ListItem>
                                                <asp:ListItem Value="" Text="" style="display: none" />
                                            </asp:RadioButtonList>
                                        </div>
                                        <div id="dMainAnswerResponsible"><a href="#" onclick="return false;" class="info">Res:<span>Select who is responsible in resolving this issue.</span></a>
                                             <asp:DropDownList ID="ddlEmployees" runat="server" 
                                                DataSource="<%# GetEmployees() %>" SelectedValue='<%# Eval("TKSEContact") %>' DataTextField="FullName" Width="75px"
                                                DataValueField="FullName" 
                                                ToolTip="Select the TKSE responsible party.">
                                            </asp:DropDownList>
                                            <asp:TextBox ID="txtContact" Text='<%# Eval("ResponsiblePartyContact") %>' Width="75px" MaxLength="50" runat="server" ToolTip="Enter the responsible contact name." Visible="false"></asp:TextBox>
                                        </div>
                                        <div id="dDueDate"><a href="#" onclick="return false;" class="info">Due:<span>Select the due date when you expect this issue to be resolved.</span></a>
                                            <asp:TextBox ID="txtDueDate" Text='<%# Eval("DueDate") %>' Width="59px" runat="server" ToolTip="Select the due date." CssClass="datePickerDueDate"></asp:TextBox>
                                        </div>
                                        <div id="cSendToSugar">
                                            <asp:CheckBox ID="chkSendToSugar" ToolTip="Send/Update issue to Sugar?" BackColor="Gold" Text="Send To Sugar?" Checked="true" runat="server" />
                                        </div>
                                   </asp:Panel>
                               </div>
                            </ItemTemplate>
                                <FooterStyle HorizontalAlign="Center" />
                                <HeaderStyle HorizontalAlign="Center" />
                                <ItemStyle HorizontalAlign="Center" />
                            </asp:TemplateField>

请注意面板pnlAnswer,其初始设置为不可见可见=False。它也不是radiobutton列表的同级。至少我不认为它是…

使用.parents查找元素的父元素;如果给它一个css类,则可以执行以下操作:

$(this).parents(".class:first")
找到它。我假设面板是radiobuttonlist的父级。否则,您可能需要使用另一个Jquery方法。只要面板可见或隐藏,此功能就可以使用:

<asp:Panel .. style="display:none" />

使用.parents查找元素的父元素;如果给它一个css类,则可以执行以下操作:

$(this).parents(".class:first")
找到它。我假设面板是radiobuttonlist的父级。否则,您可能需要使用另一个Jquery方法。只要面板可见或隐藏,此功能就可以使用:

<asp:Panel .. style="display:none" />

我建议给你的面板一个css类,然后使用jQuery选择器。如果单选按钮是面板的一个按钮:

var panel = $(this).siblings(".answer");
这取决于面板在生成的标记中的位置,也许可以使用next或prev。如果您发布生成的标记,我可以更新此答案

现在,我们可以看到标记,感谢您需要家长,然后是兄弟姐妹,如下所示:

 <someOtherElement> <!-- the grid view container -->
    <div class="answer"></div> <!-- sibling of parent (maybe <div runat="server"> is better than panel?)  -->
    <div> <!-- parent -->
        <input type="radio">  <!-- this -->
    </div>
 </someOtherElement>

我建议给你的面板一个css类,然后使用jQuery选择器。如果单选按钮是面板的一个按钮:

var panel = $(this).siblings(".answer");
这取决于面板在生成的标记中的位置,也许可以使用next或prev。如果您发布生成的标记,我可以更新此答案

现在,我们可以看到标记,感谢您需要家长,然后是兄弟姐妹,如下所示:

 <someOtherElement> <!-- the grid view container -->
    <div class="answer"></div> <!-- sibling of parent (maybe <div runat="server"> is better than panel?)  -->
    <div> <!-- parent -->
        <input type="radio">  <!-- this -->
    </div>
 </someOtherElement>


如果您有许多面板和许多单选按钮,在这种情况下很容易找到靠近单选按钮的第一个面板。如果您有许多面板和许多单选按钮,在这种情况下,很容易找到单选按钮附近的第一个面板。但最初,此面板在我的asp.net中不可见runat=server visible=false,因此我认为我不能使用客户端id,可以吗?visible=false不会呈现给客户端,因此您将永远找不到该面板。如果希望面板可访问,请设置style=display:none;而是在面板上。问题是RadioButton列表不在面板内部,而是在面板外部。那么家长如何帮助我?@oJM86o你说的外部是什么意思?你能发布你的标记吗。如果没有它,很难告诉你正确的使用方法。嗨,Brian,谢谢你的耐心,我发布了我的标记,你可以看一下吗。但是最初这个面板在我的asp.net中是不可见的runat=server visible=false,所以我想我不能使用客户端id can I?visible=false不会呈现给客户端,所以你永远找不到该面板。如果希望面板可访问,请设置style=display:none;而是在面板上。问题是RadioButton列表不在面板内部,而是在面板外部。那么家长如何帮助我?@oJM86o你说的外部是什么意思?你能发布你的标记吗。没有它很难告诉你正确的方法。嗨,布莱恩,谢谢你的耐心,我发布了我的标记,你能看一下吗?问题是单选按钮列表在面板外面,而不是在面板里面,所以它不是兄弟姐妹。@oJM86o“外部”是指单选按钮列表作为父/子关系在面板中?@BrianMains-请看我的标记,单选按钮列表在面板前面。他们是分开的,不是父母/孩子。基本上,当您单击单选按钮时,数值为“否”,则面板应打开。现在我有一个代码,它的值是No,因此,现在我需要获取面板的引用并显示它,因为他们选择了“否”。问题是单选按钮列表在面板之外,而不是在面板内部,因此它不是兄弟节点。@oJM86o“外部”是指单选按钮列表作为父/子关系在面板中?@BrianMains-请参阅我的标记,RadioButton列表位于面板之前。他们是分开的,不是父母/孩子。基本上,当您单击单选按钮时,数值为“否”,则面板应打开。现在我有一个代码,它获取值No,所以现在我需要获取面板的引用并显示它,因为他们选择了No。