获取控件的客户端ID

时间:2014-12-05 04:40:59

标签: jquery asp.net

在我的网页中,我想访问$(document).ready函数中的控件的客户端ID,

下面是代码,

<asp:DataGrid ID="dgrStakeholders" runat="server" >
                            <Columns>
                                <asp:TemplateColumn>
                                    <ItemTemplate>
                                        <asp:Literal ID="lit1" runat="server" />
                                    </ItemTemplate>
                                    <EditItemTemplate>
                                          <telerik:RadComboBox ID="combo1" EnableLoadOnDemand="true" runat="server"></telerik:RadComboBox>
                                    </EditItemTemplate>
                                    <FooterTemplate>
                                         <telerik:RadComboBox ID="combo11" EnableLoadOnDemand="true" runat="server"></telerik:RadComboBox>  
                                    </FooterTemplate>
                                </asp:TemplateColumn>
                                <asp:TemplateColumn >
                                    <ItemTemplate>
                                        <asp:Literal ID="lit2" runat="server" />
                                    </ItemTemplate>
                                    <EditItemTemplate>

                                        <telerik:RadComboBox ID="combo3" EnableLoadOnDemand="true" runat="server"></telerik:RadComboBox>

                                    </EditItemTemplate>
                                    <FooterTemplate>                                        
                                        <telerik:RadComboBox ID="combo4" EnableLoadOnDemand="true"  
                                            Width="150px" Height="150px" Filter="Contains" runat="server"></telerik:RadComboBox>                                               
                                    </FooterTemplate>
                                </asp:TemplateColumn>

                                <asp:TemplateColumn >
                                    <ItemTemplate>
                                        <asp:Literal ID="lit54" runat="server" />
                                    </ItemTemplate>
                                    <EditItemTemplate>
                                        <asp:TextBox ID="txt11" runat="server" Width="160px" />
                                        <asp:ListBox ID="lstNo" runat="server" DisplayMode="LinkButton"
                                            Style="display: none; position: absolute; margin: 2px; width: 210px" />
                                        <input type="button" id="btnNo" style="width: 10px;
                                            vertical-align: middle; height: 23px; margin-left: -3px; border-style: solid;
                                            border-width: thin; border-color: #7F9DB9; border-bottom-width: 1px; background-image: url(../../../Images/dropdownarrow.bmp);
                                            background-repeat: no-repeat; background-position: center;" />
                                    </EditItemTemplate>
                                    <FooterTemplate>
                                        <asp:TextBox ID="txt12" runat="server" Width="160px" />
                                        <asp:ListBox ID="lstNo1" runat="server" DisplayMode="LinkButton"
                                            Style="display: none; position: absolute; margin: 2px; width: 210px;" />
                                        <input type="button" id="btnNo1" style="width: 10px;
                                            vertical-align: middle; height: 23px; margin-left: -3px; border-style: solid;
                                            border-width: thin; border-color: #7F9DB9; border-bottom-width: 1px; background-image: url(../../../Images/dropdownarrow.bmp);
                                            background-repeat: no-repeat; background-position: center;" />
                                    </FooterTemplate>
                                </asp:TemplateColumn>
                                <asp:TemplateColumn>
                                    <ItemTemplate>
                                        <asp:LinkButton ID="link1" runat="server"/>

                                    </ItemTemplate>
                                    <EditItemTemplate>

                                    </EditItemTemplate>
                                    <FooterTemplate>

                                    </FooterTemplate>
                                </asp:TemplateColumn>
                            </Columns>
                        </asp:DataGrid>

我想获得控件的ID&#39; lstNo&#39;和&#39; lstNo1&#39;在我的$(document).ready函数中,如何获取Listbox的id&#39; lstNo&#39;和&#39; lstNo1&#39;在$(document).ready function?

我的itemtemplate包含多行,因此使用clientIDMode =&#39; static&#39;不会得到id,还有其他解决方案吗?

2 个答案:

答案 0 :(得分:1)

如果它在aspx页面中,那么您可以使用 ClientID 控件属性来获取它:

var Id = <%=lstNo.ClientID%>;

如果您想要在单独的JS文件中访问,那么您可以使用 ClientIDMode 使其静态,以便客户端的ID与服务器端的ID相同:

<asp:ListBox ID="lstNo" runat="server" DisplayMode="LinkButton" ClientIdMode="Static"

现在:

var Id = "lstNo";

$("#"+Id)

或直接使用:

$("#lstNo")

答案 1 :(得分:0)

这取决于DataGrid控件的html呈现。如果它呈现一个html表标记,那么你将不得不执行循环html表的行,然后选择其id包含“lstNo”的控件。

请使用firebug之类的工具检查浏览器窗口中生成的html输出是什么,或者在IE中查看视图源。我猜列表框会以

的形式呈现下拉列表
<select> tag.