2016-05-18 58 views
1

我想在運行時向我的頁面添加一些提交輸入,並在事件處理程序中使用點擊輸入的標識。如何獲取在運行時創建的單擊輸入的標識

這裏是我的aspx代碼:

<asp:Content runat="server" ID="CNT1" ContentPlaceHolderID="CPH1"> 
    <div id ="CNT" runat="server"> 
    </div> 
</asp:Content> 
<script language="c#" runat="server"> 


private void btnClick(object sender, EventArgs e) 
{ 
    string id = ((HtmlInputSubmit) sender).ID; 
    // some other code using id 
} 
</script> 

,這裏是我的aspx.cs代碼

foreach (DataRow dr in dt.Rows) 
{ 
    CNT.Controls.Add(new LiteralControl(
    "<input type=\"submit\" runat=\"server\" id="+dr.ItemArray[0].ToString()+ 
     " value=\"val1\" OnServerClick=\"btnClick\"/>")); 
} 

我可以使用此代碼的aspx頁面上創建我的投入沒有任何問題。從私人

+0

是什麼問題?這是行不通的「string id =((HtmlInputSubmit)sender).ID;」? –

+0

請更具體,無法理解問題 –

+0

嘗試結帳您的button_click事件是否被解僱? – Irfan

回答

0

更改訪問修飾符來保護:

protected void btnClick(object sender, EventArgs e) 
{ 
    string id = ((HtmlInputSubmit) sender).ID; 
    // some other code using id 
} 

因爲私有成員函數不能被訪問。

+0

的服務器端按鈕,這對我來說很重要,因爲我知道我的代碼不工作。 – Behnam

+0

查看已更新的答案 – Ash

+0

無法投射「ASP.predictions_aspx」類型的對象來鍵入「System.Web.UI.WebControls.Button」。 – Behnam

相關問題