2016-05-18 4 views
1

Ich möchte zur Laufzeit einige Submit-Eingaben zu meiner Seite hinzufügen und die ID der angeklickten Eingabe in einem Event-Handler verwenden.So erhalten Sie die ID der angeklickten Eingabe, die zur Laufzeit erstellt wurde

Hier ist meine aspx-Code:

<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> 

und hier ist mein aspx.cs Code

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\"/>")); 
} 

ich diesen Code verwenden kann meine Eingaben auf der aspx Seite ohne Probleme zu schaffen.

+0

was ist die Frage? funktioniert das nicht "string id = ((HtmlInputSubmit) sender) .ID;"? –

+0

bitte genauer sein, nicht in der Lage, das Problem zu verstehen –

+0

versuchen Sie, Ihre button_click Ereignis ausgelöst wird oder nicht? – Irfan

Antwort

0

ändern Zugriffsmodifikator von privat zu schützen:

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

Da die privaten Member-Funktion nicht zugegriffen werden kann.

+0

es ist für mich wertvoll zu wissen, warum meine Codes nicht funktionieren. – Behnam

+0

finden Sie in der aktualisierten Antwort – Ash

+0

Kann Objekt des Typs 'ASP.predictions_aspx' nicht umwandeln, um 'System.Web.UI.WebControls.Button' einzugeben. – Behnam

Verwandte Themen