在浏览器中更改代码

时间:2014-05-13 10:13:41

标签: c# javascript asp.net drop-down-menu

我使用下拉列表选择客户,我需要删除我在图片中显示的setTimeout,我不知道从哪里删除它..可以任何一个建议我从它加载的地方...我的浏览器单独显示<select .. >,我需要知道它从哪里加载..

<td><asp:DropDownList Width="180px" CssClass="select_quo_one" ID="ReceiverDropDown" 
                            runat="server" AutoPostBack="true"
                            OnSelectedIndexChanged="ReceiverDropDown_SelectedIndexChanged">
                            </asp:DropDownList>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                        </td>

我的浏览器代码:

enter image description here

2 个答案:

答案 0 :(得分:0)

由于AutoPostBack设置为true,因此DropDownList控件会自动生成setTimeout。

来自http://msdn.microsoft.com/en-us/library/system.web.ui.postbackoptions.autopostback(v=vs.110).aspx

  

JavaScript setTimeout方法与_doPostBack方法一起使用,以确保用户操作在回发发生之前完成。

修改 &#34;闪烁发生在我的页面中,所以我必须删除setTimeout值.. - 用户3595072 17分钟前&#34;

setTimeout本身不会(直接)导致页面闪烁。闪烁是因为DropDownList每次更改时都会进行回发bc AutoPostBack设置为true,这会导致页面刷新。如果您在选择客户后立即执行任何服务器端操作(例如在页面上加载其他客户信息),则只需将AutoPostBack设置为false即可。否则,您可以考虑在页面上使用UpdatePanel,或使用类似AJAX调用的方式在没有完整回发的情况下进行处理。

编辑2:

由于您只是在AutoPostBack事件中添加了javascript,因此可以通过将以下内容添加到ASPX页面来添加jQuery引用(如果您还没有):

<script src="//code.jquery.com/jquery-1.11.0.min.js" type="text/javascript"></script>

然后设置AutoPostBack =&#34; false&#34;在你的DropDownList上添加这个javascript来完成你的AutoPostBack正在做的事情:

<script type="text/javascript">
    $(function () {
        $('#<%=ReceiverDropDown.ClientID %>').on('change', function (e) {
            var benId = $(this).val();
            if (benId != '' && benId != '0') {
                AddDetails(benId);
            }
        });
    });
</script>

答案 1 :(得分:0)

对我来说,你有几个选择 -

1)删除AutoPostBack - 这将停止SelectedIndexChanged事件触发,但由于您似乎只是弹出警报,您可能可能会重新创建此客户端。

2)将DropDownList放在UpdatePanel中,如您在其他问题中所解释的那样,您可能需要进行一些调试才能使其正常工作,但应该按照您的意愿进行操作。

3)接受页面重新加载 - 接受这是使用Web表单时的权衡,并保持原样。

4)转移到没有Postback模型的MVC。

听起来您可能需要阅读Web表单并查看优点和缺点,并在您尝试对抗框架时做出明智的决定,而不是使用它。