2011-04-01 53 views
6

我有一個用戶控件內更新面板。當我點擊一些按鈕時,這個用戶控件將被加載 。並且用戶控件本身有一個按鈕。問題是後面的用戶控制代碼從未被執行,並且當按鈕被點擊時,usercontrol 消失。usercontrol內更新面板問題

我知道這是一個常見問題。但我還沒有找到一個很好的詳細解決方案。

我很感激。

+0

您是否在用戶控件的頁面加載中設置了斷點以查看會發生什麼? – WorldIsRound 2011-04-01 01:32:35

回答

2

在用戶控件,只需使用一個標準的HTML按鈕這樣的:

<input type="button" id="myButton" onclick="clickTheButton();" value="Click Me"/> 

這將調用JavaScript方法「clickTheButton」,它可以是這樣的:

<script type="text/javascript"> 
function clickTheButton() { 

    var Sender = window.event.srcElement; 

    //here you can go gather any other values that you need to support the post back 

    var PostBackData = textboxCity.value + "|" + selectState.value 
    if(confirm("are you sure?")) 
    { 
      __doPostBack(Sender.ID, PostBackData) 
    } 
} 
</script> 

所以,現在你打算從Javascript中調用一個回傳,標識發件人控件和命令參數。這些值與後背部爲__EVENTTARGET和__EventArgument過去了,可從HttpRequest中像頁面加載速度:

protected void Page_Load(object sender, EventArgs e) 
{ 
    string controlName = Request.Params.Get("__EVENTTARGET"); 
    string[] commandArguments = Request.Params.Get("__EVENTARGUMENT").split('|') 
} 

一旦你在頁面加載你累計到commandArguments任何值,你應該能夠調用的無論您想要什麼其他方法。

這應該讓你指出正確的方向。

乾杯,

CEC