小编Dav*_*ave的帖子

__doPostBack仅在页面上有LinkBut​​ton,Calendar或WizardStep控件时才有效

我发现__doPostBack存在问题,并找到了解决方法。我正在寻找原因的解释和/或比我的工作更好的解决方案。

场景: 我在下拉列表中填充了值;“-选择-”,“一个”和“两个”。如果用户选择“一个”,则执行客户端脚本。如果用户选择“两个”,则执行服务器端脚本。

问题: 客户端脚本通过调用__doPostBack来发起回发。但是,除非页面上没有LinkBut​​ton,Calendar或WizardStep控件,否则实际上不会发生任何回发。我实际上检查了Visual Studio Toolbox中的所有标准工具,并对它们全部进行了测试。它必须是这三个之一。

解决方法: 添加一个链接按钮,该按钮周围环绕一个跨度,且显示设置为无。

<span style="display:none;">
    <asp:LinkButton ID="LinkButton1" runat="server">LinkButton</asp:LinkButton>
</span>
Run Code Online (Sandbox Code Playgroud)

问题:有人可以提供这种行为的解释,或者提供比我的“变通方法”更好的解决方案吗?

来源-Javascript(我将其放置在head标签之间)

<script language="javascript" type="text/javascript">
    function DropDownList1_change(elementRef) {
        var selectedIndex = elementRef.selectedIndex;
        if (selectedIndex > 0) {
            var selectedValue = elementRef.options[selectedIndex].value;
            if (selectedValue == "One") {
                alert("Because you selected 'One', special javascript code will be executed");
                // Special javascript code goes here
                return;
            }
            else if (selectedValue == "Two") {
                // Special server code gets executed on server DropDownList1_SelectedIndexChanged
                __doPostBack('DropDownList1', '');
            }
        } …
Run Code Online (Sandbox Code Playgroud)

javascript c# asp.net postback webforms

5
推荐指数
1
解决办法
1170
查看次数

标签 统计

asp.net ×1

c# ×1

javascript ×1

postback ×1

webforms ×1