0

私は次のコードを持っています:

<script type="text/javascript">    

    Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(beginRequestHandle);
    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(endRequestHandle);
    function beginRequestHandle(sender, Args) {
        //Do something when call begins. 

        document.getElementById("btn1").style.visibility = "hidden";
        document.getElementById("btn2").style.visibility = "hidden";
    }

    function endRequestHandle(sender, Args) {
        if (document.getElementById('<%= hfResultsCount.ClientID %>').value != 0) {
            document.getElementById("btn1").style.visibility = "visible";
            document.getElementById("btn2").style.visibility = "visible";
        }
        else {
            document.getElementById("results").innerHTML = "<br><b><center><font style='font-family:Haettenschweiler; font-size:xx-large'>No data found, please try again.</b></font></center>";
        }
    }
</script>

およびbtn2のコード:

 <input type="button" runat="server" name="btn2" id="btn2" value="New Window"
 style="visibility:hidden;font-weight:bold;width:200" onclick="window.open('http://microsoft.com');" />

btn1私はJsを使用してボタンを表示/非表示にしています(このようにする必要があるasp:buttonので、他の方法で提案しないでください)<input type=button>

Microsoft JScript runtime error: Unable to get value of the property 'style': object is null or undefined

それを修正する方法btn1は単に追加することでしたが、ボタンClientID=Staticに対してそれを行う方法は?<input>(ポストバックしないために必要なので、asp:buttonにはしたくありません)

すべてがClientID=StaticのUpdatePanelにあります。

それ自体はページ上で正常に機能するため、IDとマスターページとの関係を知っています。

4

3 に答える 3

1

サーバー側でボタンにアクセスする必要がない場合は、runat="server" を設定しないでください。これにより、スクリプトでボタンが検出され、エラーが発生しなくなります。

<input type="button"  name="btn2" id="btn2" value="New Window"
 style="visibility:hidden;font-weight:bold;width:200" onclick="window.open('http://microsoft.com');" />

または、 runat="server" にしたい場合は、次のようにアクセスできます

document.getElementById(<%= btn1.ClientID %>).style.visibility = "visible";
于 2012-07-10T11:22:51.790 に答える
0

ページのレンダリング後、ソースを表示し、マスター ページで ID がどのように表示されるかを確認します。

直接btnではないかもしれません....master_xxx

于 2012-07-10T11:21:28.003 に答える
0

これはうまくいくはずです:

<input type="button" runat="server" ClientIDMode="Static" 
name="btn2" id="btn2" value="New Window"
style="visibility:hidden;font-weight:bold;width:200"
onclick="window.open('http://microsoft.com');"/>

または、分離コードでコントロールにアクセスする必要がない場合:

<input type="button" name="btn2" id="btn2" value="New Window" 
style="visibility:hidden;font-weight:bold;width:200"
onclick="window.open('http://microsoft.com');"/>
于 2012-07-10T11:54:29.813 に答える