2016-04-07 11 views
0

Ich versuche, ein Steuerelement zu finden, das sich in einem Telerik RadGrid-Bearbeitungsformular befindet. Ich muss in der Lage sein, dies beim Seitenladen zu tun, aber die meisten Beispiele, die ich gesehen habe, waren nur auf itemDataBound, aber ich muss in der Lage sein, einen Wert beim Laden der Seite zu setzen und einen Wert beim Klick auf die Schaltfläche zu speichern.Kann kein Steuerelement in Telerik finden RadGrid

<telerik:RadGrid ID="rgNotes" runat="server" GroupPanelPosition="Top"> 
    <GroupingSettings CollapseAllTooltip="Collapse all groups"></GroupingSettings> 
    <MasterTableView NoDetailRecordsText="No notes for this Appointment" AutoGenerateColumns="False" CommandItemDisplay="Top" CommandItemSettings-AddNewRecordText="Add Notes" AllowAutomaticInserts="true" EditMode="PopUp"> 
     <Columns> 
      <telerik:GridEditCommandColumn UniqueName="EditCommandColumn"> 
      </telerik:GridEditCommandColumn> 
      <telerik:GridBoundColumn DataField="Subject" FilterControlAltText="Filter Subject column" HeaderText="subject" ReadOnly="True" SortExpression="Subject" UniqueName="Subject"> 
      </telerik:GridBoundColumn> 
     </Columns> 

     <EditFormSettings EditFormType="Template" InsertCaption="Add new Note"> 
      <FormTemplate> 
       Subject 
       <p> 
        <telerik:RadTextBox ID="txtSubjectNotes" Width="200px" runat="server"></telerik:RadTextBox> 
       </p> 
       <p> 
       </p> 

       <telerik:RadButton ID="rdSaveNotes" OnClick="rdSaveNotes_Click" Skin="Bootstrap" BackColor="#512479" ForeColor="White" runat="server" Text="Save Notes"></telerik:RadButton> 
       <telerik:RadButton ID="rdCancel" OnClick="rdCancel_Click1" CommandName="Cancel" Skin="Bootstrap" BackColor="#512479" ForeColor="White" runat="server" Text="Cancel"></telerik:RadButton> 
      </FormTemplate> 
     </EditFormSettings> 
    </MasterTableView> 
    <ClientSettings> 
     <ClientEvents OnPopUpShowing="PopUpShowing" /> 
     <Selecting AllowRowSelect="true" /> 
    </ClientSettings> 
</telerik:RadGrid> 

Als Beispiel versuche ich es hinter in meinem speichern Ereignisse im Code zuzugreifen.

protected void rdSaveNotes_Click(object sender, EventArgs e) 
{ 
    try 
    { 
     int id = Convert.ToInt32(Request.QueryString["id"]); 
     tblApertureNetNote _note = new tblApertureNetNote(); 
     _note.appointment_id = id; 

     _note.isActive = true; 
     _note.isDeleted = false; 
     _note.subject = txtSubjectNotes.Text; //It's here i can't find the textbox 

     _dal.Addnotes(_note); 
     rgNotes.DataBind(); 
    } 
    catch (Exception ex) 
    { 
     logger.Error("Error in rdSaveNotes_Click function calandar edit.aspx" + ex.ToString()); 
    } 
} 

Antwort

0

Dies liegt daran, wenn Kontrollen in einem Raster angeordnet sind, werden sie in der Designer-Datei als Seite Kontrollen nicht deklariert.

Sie müssen sie anders bekommen. Wenn Sie auf Speichern klicken, sollten Sie in der Lage sein, die Textbox in Bezug auf die Schaltfläche zu erreichen.

Versuchen:

var button = (Control)sender; // sender is the button 

// then ask the button's parent control to find the textbox 
var txtSubjectNotes = button.Parent.FindControl("txtSubjectNotes") as RadTextBox; 

if(txtSubjectNotes != null) 
{ 
    // make sure it's not null 
    _note.subject = txtSubjectNotes.Text; 
}