设置Focus不在asp.net中工作

时间:2017-11-27 06:32:36

标签: asp.net

我试图在Postback之后将注意力集中在一个控件上,但它不起作用。以下是详细信息。

我在Panel中有一些代码。面板将使用ajax打开关闭。 面板内有一个单选按钮...一旦我单击单选按钮,我想专注于该控件,但由于回发而进入页面的开始。

我试过了   1. SetFocus(controlID);   2. controlID.Focus();   3.设置焦点也可以在javascript中控制 但没有解决方案。

这是一个很长的页面...我有更多的面板。不确定为什么我的解决方案不起作用。

附上我的代码:

<Panel> first panel comes here...</Panel>
<div class="demoarea">
<asp:Panel ID="pnl_2_Header" runat="server" CssClass="collapsePanelHeader" Height="30px"> 
        <div style="padding:5px; cursor: pointer; vertical-align: middle;">
            <div style="float: left;">User's Information</div>
            <div style="float: left; margin-left: 20px;">
                <asp:Label ID="lbl_2_Header" runat="server" Visible="False">(Show Details...)</asp:Label>
            </div>
            <div style="float: right; vertical-align: middle;">
                <asp:ImageButton ID="img_2_Header" runat="server" ImageUrl="~/images/expand_blue.jpg" AlternateText="(Show Details...)" Visible="False"/>
            </div>
        </div>
    </asp:Panel>
 <asp:Panel ID="pnl_2" runat="server" CssClass="collapsePanel" Height="0" BorderStyle="solid" BorderWidth="1">
        <table width="100%" style="text-align:left;font-weight:300;" cellpadding="7">
            <tr valign="top">
                <td style="width:50%;">
                    School in Primary 6 : 
                    <br /><br />
                    <asp:RadioButton ID="rdoPri1" runat="server"   
                        Text="sometext" GroupName="pri"  value="1" 
                        AutoPostBack="True" oncheckedchanged="rdoPri1_CheckedChanged" /> <br />



                    <asp:RadioButton ID="rdoPriOther" runat="server"  Text="Others" 
                        GroupName="pri"  value="2" AutoPostBack="True" 
                        oncheckedchanged="rdoPriOther_CheckedChanged"   />     

                     &nbsp;&nbsp;<asp:TextBox ID="txtPriOther" CssClass="txt" Width="50%" runat="server"></asp:TextBox> 
                     <asp:RequiredFieldValidator ID="reqPriOther" ValidationGroup="pnl_2"  Visible="false" runat="server" ControlToValidate="txtPriOther" Text="*"  ErrorMessage="*" SetFocusOnError="true"></asp:RequiredFieldValidator>
                </td>
</tr>
</table>
</asp:Panel>
</div>
<ajaxToolkit:CollapsiblePanelExtender ID="cpe_2" runat="Server"
    TargetControlID="pnl_2"
    ExpandControlID="pnl_2_Header"
    CollapseControlID="pnl_2_Header" 
    Collapsed="True"
    TextLabelID="lbl_2_Header"
    ImageControlID="img_2_Header"    
    ExpandedText="(Hide Details...)"
    CollapsedText="(Show Details...)"
    ExpandedImage="~/images/collapse_blue.jpg"
    CollapsedImage="~/images/expand_blue.jpg"
    SuppressPostBack="true"
    SkinID="CollapsiblePanelDemo"  />


<Panel> 3rd Panel </Panel>
...

代码背后:

 protected void rdoPri1_CheckedChanged(object sender, EventArgs e)
{
    -- Some code here --
    //SetFocus(pnl_2);
    rdoPri1.Focus();
}

1 个答案:

答案 0 :(得分:0)

在页面加载中添加相同的control.Focus()setfocus,并添加条件,如果需要

//in page load
if (rdoButton1.Checked) {//setfocus here}