2011-05-31 88 views
0

我想通過WebBrowserControl從我的應用程序的網站中獲取數據。我可以成功登錄,但是當我以編程方式呼叫btnsearch.Invokemember("click")時,我收到一個JavaScript錯誤。如果我在WebBrowserControl上交互式地點擊按鈕,我收不到任何錯誤,一切正常。爲什麼不能使用`Invokemember(「click」)`以編程方式點擊我的按鈕?

在aspx頁面我有叫一個Ajax面板一個JavaScript函數:

<script type="text/javascript"> 
/*<![CDATA[*/ 
window["ctl00_WorkSpace_ctlCustAVIHistory_ajxResultPanel"] = new RadAjaxPanelNamespace.RadAjaxPanel({ClientID:"ctl00_WorkSpace_ctlCustAVIHistory_ajxResultPanel",EnableOutsideScripts:false,EnablePageHeadUpdate:true,Url:"/app/ModuleCustomer/ViewAVITransactions.aspx",LoadingPanelID:"ctl00_WorkSpace_ctlCustAVIHistory_LoadingPanel1",ActiveElementID:"",ClientEvents:{OnRequestStart:"",OnRequestSent:"",OnResponseReceived:"",OnResponseEnd:""},FormID:"aspnetForm",UniqueID:"ctl00$WorkSpace$ctlCustAVIHistory$ajxResultPanel"});/*]]>*/ 
</script> 

它產生的UniqueID。如果我們通過代碼點擊btnsearch,則此唯一標識爲空。

function onClickButton(rName) 
{ 
    if(validateData()) 
    {  
     document.getElementById("ctl00_WorkSpace_ctlCustAVIHistory_hdnReset").value = "0";  
     ctl00_WorkSpace_ctlCustAVIHistory_ajxResultPanel.AjaxRequest("NewSearch"); ///these caling down function  
    }  
} 

RadAjaxPanelNamespace.RadAjaxPanel.prototype.AjaxRequest = function (eventArgument) {  
    this.AjaxRequestWithTarget(this.UniqueID, eventArgument);//this.UniqueID giving null from program click mouse click it is giving correct id 
}; 

任何想法爲什麼會發生這種情況?

回答

1
private const string STR_Field_userid = "field_userid"; 
    private const string STR_Field_password = "field_password"; 
    private const string STR_Submit = "submit";    

     document.GetElementById(STR_Field_userid).InnerText = UserId; 
     document.GetElementById(STR_Field_password).InnerText = Password; 
     document.Forms[0].InvokeMember(STR_Submit); 
相關問題