Wie man den Wert einer textbox auf RadGrid ItemCommand-event-handler, wenn eine Benutzerdefinierte Befehl?
Ich bin mit RadGrid Form Vorlagen wie unten;
<EditFormSettings EditFormType="Template">
<FormTemplate>
<table id="tblEditForm" cellpadding="2" cellspacing="2" width="100%" border="2px"
class="tblEditForm">
<tr>
<th>
Server Name:
</th>
<td>
<asp:TextBox ID="tbServerName" runat="server" Text='<%# Bind("ServerName") %>' CssClass="tbServerName">
</asp:TextBox>
</td>
</tr>
<tr>
<td colspan="2">
<div style="text-align: left; padding-left: 10px;display: inline; width: 50%">
<asp:LinkButton ID="lbTestConnection" runat="server" Text="Test Connection" CommandName="TestConnection" />
(It may take up to 15 seconds.)
<br />
</div>
<asp:Label ID="lblTestConnectionResult" runat="server" CssClass="testConnectionResult"></asp:Label>
<div style="text-align: right; padding-right: 10px;display: inline; float: right;">
<asp:Button ID="btnUpdate" Text='<%# (Container is GridEditFormInsertItem) ? "Insert" : "Update" %>'
runat="server" CommandName='<%# (Container is GridEditFormInsertItem) ? "PerformInsert" : "Update" %>'>
</asp:Button>
<asp:Button ID="btnCancel" Text="Cancel" runat="server" CausesValidation="False"
CommandName="Cancel"></asp:Button>
</div>
</td>
</tr>
</table>
</FormTemplate>
</EditFormSettings>
Wenn Sie die Verknüpfung Aktualisieren " - button geklickt wird auf meinem RadGrid, das Bearbeiten-Formular angezeigt wird.
Dann klicke ich die Verbindung Testen Schaltfläche "link" und ItemCommand-Ereignis ausgelöst wird.
public void OnRadGridItemCommand(object sender, GridCommandEventArgs e)
{
if (e.CommandName == "TestConnection")
{
var gridEditFormItem = e.Item as GridEditFormItem;
if (gridEditFormItem == null)
throw new ApplicationException("gridEditFormItem is null");
var serverNameTextBox = gridEditFormItem.FindControl("tbServerName") as TextBox;
}
}
Das problem ist, dass die gridEditFormItem variable null ist in diesem Stadium, so kann ich nicht herausfinden, den Wert im Textfeld "ServerName" zum Beispiel.
Wie man den Wert von der textbox auf RadGrid ItemCommand-event-handler?
Wenn ich auf die Standard-link einfügen-Schaltfläche der RadGrid statt, die gridEditFormItem Wert hat, so kann ich einfach den Wert meiner textbox gibt.
Bitte helfen.
Dank,
InformationsquelleAutor The Light | 2011-10-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich es behoben 🙂
Beim Einfügen der e.Element ist ein GridEditFormItem. Bei der Aktualisierung der e.Element ist ein GridDataItem!
InformationsquelleAutor The Light
Einer Weise, die Sie tun können, es ist zum speichern der Feldwerte innerhalb der RadGrid Datakeys. Wenn OnRadGridItemCommand ausgelöst wird, versuchen Sie, den Wert so:
Nicht sicher, ob es die richtige Syntax, ich kann das nicht testen diesen code jetzt. Nur give it a go.
sorry, ich wusste nicht, Lesen Sie Ihre post richtig. haben Sie versucht, immer das grid-Element und finden die Steuerelemente mit FindControl? ich denke, es geht so etwas wie dieses: GridItem editedItem = RadGridID.MasterTableView.Items[e.Element.ItemIndex]; then TextBox tbServerName = (TextBox)editedItem.FindControl("tbServerName ").
es ist fest, keine Sorge. gemeinsam die Antwort.
InformationsquelleAutor Razvan
getestet habe ich blow-code für asp.net im itemcommand-und es stimmt.
InformationsquelleAutor Phoenix