我有一個用戶控件內更新面板。當我點擊一些按鈕時,這個用戶控件將被加載 。並且用戶控件本身有一個按鈕。問題是後面的用戶控制代碼從未被執行,並且當按鈕被點擊時,usercontrol 消失。usercontrol內更新面板問題
我知道這是一個常見問題。但我還沒有找到一個很好的詳細解決方案。
我很感激。
我有一個用戶控件內更新面板。當我點擊一些按鈕時,這個用戶控件將被加載 。並且用戶控件本身有一個按鈕。問題是後面的用戶控制代碼從未被執行,並且當按鈕被點擊時,usercontrol 消失。usercontrol內更新面板問題
我知道這是一個常見問題。但我還沒有找到一個很好的詳細解決方案。
我很感激。
在用戶控件,只需使用一個標準的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
加載用戶控制動態地更新面板是棘手的。
最佳解決方案是將其保存在ViewState中,Here is a tutorial and sample application。
您是否在用戶控件的頁面加載中設置了斷點以查看會發生什麼? – WorldIsRound 2011-04-01 01:32:35