ASP RadioButton在使用和不使用工具提示文本

时间:2015-06-24 01:55:48

标签: jquery asp.net vb.net

所以我遇到了一个非常令人困惑的问题,使用ASP RadioButton的行为与工具提示或工具提示文本的存在和缺失有很大不同。无线电按钮不能保持检查状态,你可以整天来回点击,它会在ui和服务器端暂时显示为已检查(checkedchanged会说一个被检查),但之后立即认为两个无线电按钮在ui和serverside(单击未显示"生成导出"按钮)。它不会像一个单选按钮那样,但更像是一个带有回发的标准按钮,没有关于它的无线电,它们都看起来没有从ui中检查。

相关片段:

断裂:

    <asp:RadioButton ID="ui_assetExport0" runat="server" GroupName="assetExport" Checked="true" AutoPostBack="true" Text="By Filter" ToolTip="" />

    <asp:RadioButton ID="ui_assetExport1" runat="server" GroupName="assetExport" Checked="false" AutoPostBack="true" Text="By Category" ToolTip="" />

    <input id="ctl00_PageContentPlaceHolder_ui_assetExport0" type="radio" name="ctl00$PageContentPlaceHolder$assetExport" value="ui_assetExport0" onclick="javascript:setTimeout('__doPostBack(\'ctl00$PageContentPlaceHolder$ui_assetExport0\',\'\')', 0)">

    <input id="ctl00_PageContentPlaceHolder_ui_assetExport1" type="radio" name="ctl00$PageContentPlaceHolder$assetExport" value="ui_assetExport1" onclick="javascript:setTimeout('__doPostBack(\'ctl00$PageContentPlaceHolder$ui_assetExport1\',\'\')', 0)">

(注意:完全删除工具提示时会出现这种确切的行为)

工作:

    <asp:RadioButton ID="ui_assetExport0" runat="server" GroupName="assetExport" Checked="true" AutoPostBack="true" Text="By Filter" ToolTip=" " />

    <asp:RadioButton ID="ui_assetExport1" runat="server" GroupName="assetExport" Checked="false" AutoPostBack="true" Text="By Category" ToolTip=" " />

    <input id="ctl00_PageContentPlaceHolder_ui_assetExport0" type="radio" name="ctl00$PageContentPlaceHolder$assetExport" value="ui_assetExport0" checked="checked">

    <input id="ctl00_PageContentPlaceHolder_ui_assetExport1" type="radio" name="ctl00$PageContentPlaceHolder$assetExport" value="ui_assetExport1" onclick="javascript:setTimeout('__doPostBack(\'ctl00$PageContentPlaceHolder$ui_assetExport1\',\'\')', 0)">

(注意:工具提示中只有空格,但如果存在某些内容则行为相同)

对于第一对,他们都有onclick javascript回发,而第二对则具有所选单选按钮的已检查属性(选择一个或另一个将交换具有onclick和checked属性的预期)。

这些工具提示也观察到了一些其他奇怪的行为,即当它有一个相当大的文本时,第一个单片机的工具提示会在打开对话框时立即显示(即使我明确地将焦点放在一个对话框打开功能中的不同控件而不是悬停在单选按钮上),并且表示工具提示永久保留在页面刷新之前(大约75%的时间是永久性的。回发,点击其他控件/区域,悬停在其他位置)工具提示,关闭对话框等没有清除工具提示)。第一个单选按钮是对话框中的第一个控件,如果有帮助的话。

破坏的无线电按钮似乎正在完成它们的工作,因为无线电按钮在checkedchanged事件中正确服务,但是当&#34;生成导出&#34;单击按钮两个radiobuttons被视为未选中。

更多的相关信息可能是这些控件在JQuery v1.11.2中(是的,我知道)模态对话框,以及对话框内部的ASP UpdatePanel。同样是的,听起来很疯狂,工具提示文字实际上是工作和损坏的无线电按钮之间的唯一区别。页面上没有javascript错误,并且在单步执行代码时,在checkedchanged事件(显示它们看起来像它们正在工作)之后没有任何代码运行。在页面中也没有任何javascript可以触及这些控件或它们的属性。

有没有人知道为什么工具提示文本(或工具提示本身)的存在/不存在如此严重地改变了无线电按钮的行为,以及为什么工具提示无论焦点如何都会显示并永久保留?

对于文本墙感到抱歉,我试图尽可能具有描述性和准确性,因为这种行为非常奇怪。

1 个答案:

答案 0 :(得分:0)

当我在UpdatePanels内部将AutoPostBack设置为true时,我遇到了RadioButtons的问题,尽管我遇到的问题与ToolTip无关,但它听起来有些类似,我认为值得建议。 / p>

我通过向每个RadioButton添加我自己的onclick属性来解决这个问题,以确保它可以回发,例如:

ui_assetExport0.Attributes.Add("onclick", "javascript:setTimeout('__doPostBack(\'" + ui_assetExport0.ClientID.Replace("_", "$") + "\',\'\')', 0)");

(虽然不会帮助你解决工具提示问题)

如果您发布了更多代码,尤其是与UpdatePanel相关的结构,这可能会有所帮助。

相关问题