Ich habe eine harte Zeit herauszufinden, wie man den Wert von einer statischen ID erhalten. Ich habe eine Jquery, die ein Label in ein Textfeld umwandelt, wenn ich darauf klicke. Es verwendet die (statische) ID des Labels und wandelt sie in TextBox um. So zum Beispiel: Label1 => TextBox1Wie bekomme ich einen bestimmten Wert einer statischen ID aus einem Textfeld in einer Gridview C#
Ich mag gerne wissen, wie ich den Wert von TextBox1 aus dieser bestimmten Zelle nur bekommen, weil, wenn ich es aus der Spalte alle der Textfelder zu aktualisieren versuchen, ihren Wert (mit id: Label1 (afspraken)) sind als in TextBox1. Also, wenn ich update, sind alle Werte aus der ganzen Spalte in der Zelle. (Wenn das unklar ist, schaue auf das Bild unter dem Code)
Jede Hilfe ist willkommen, da ich dieses Projekt morgen abgeben muss und wäre wirklich froh, dass das funktioniert!
Code:
C#
protected void Button3_Click(object sender, EventArgs e)
{
_controller = new Controller();
//Variablen
string afspraak ="";
string uitleg ="";
string id="";
string id1 = "";
//Values uit uit gridview halen halen
foreach (GridViewRow row in GridView1.Rows)
{
string tekst = Request.Form["TextBox1"];
/afspraak = ((TextBox)row.FindControl("txtEditTabel")).Text;
//Don't look at this
uitleg = ((Label)row.FindControl("Label2")).Text;
id = ((Label)row.FindControl("Label3")).Text;
id1 = ((Label)row.FindControl("Label4")).Text;
}
//Methode om record te bewerken
_controller.RecordUpdatenTblAfspraken(afspraak, uitleg, Convert.ToInt32(id), Convert.ToInt32(id1));
//Pagina refreshen
Response.Redirect(Request.RawUrl);
}
ASP.NET GRIDVIEW
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" CellPadding="4" ForeColor="#333333" GridLines="None" Width="1000px" HorizontalAlign="Center" OnSelectedIndexChanged="GridView1_SelectedIndexChanged" OnRowDeleting="GridView1_RowDeleting" DataKeyNames="IDAfspraken" ClientIDMode="Static">
<AlternatingRowStyle BackColor="White" ForeColor="#284775" />
<Columns>
<asp:TemplateField HeaderText="IDAfspraken">
<ItemTemplate>
<asp:Label ID="Label4" runat="server" Text='<%# Eval("IDAfspraken") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Afspraak">
<ItemTemplate>
<asp:Label ID="Label1" CssClass="editable" runat="server" Text='<%# Eval("Afspraak") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Uitleg">
<ItemTemplate>
<asp:Label ID="Label2" CssClass="editable" runat="server" Text='<%# Eval("Uitleg") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Categorie">
<ItemTemplate>
<asp:Label ID="Label3" CssClass="editable" runat="server" Text='<%# Eval("IDCategorieën") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Bewerken">
<ItemTemplate>
<asp:Button ID="Button3" runat="server" Text="Bewerken" ForeColor="DeepSkyBlue" Font-Bold="true" OnClick="Button3_Click"/>
</ItemTemplate>
</asp:TemplateField>
<asp:CommandField ButtonType="Button" ShowDeleteButton="True" />
</Columns>
<EditRowStyle BackColor="#999999" />
<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
<RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
<SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
<SortedAscendingCellStyle BackColor="#E9E7E2" />
<SortedAscendingHeaderStyle BackColor="#506C8C" />
<SortedDescendingCellStyle BackColor="#FFFDF8" />
<SortedDescendingHeaderStyle BackColor="#6F8DAE" />
</asp:GridView>
JAVASCRIPT
$(function() {
//Loop through all Labels with class 'editable'.
$(".editable").each(function() {
//Reference the Label.
var label = $(this);
//Add a TextBox next to the Label.
label.after("<input type = 'text' style = 'display:none' />");
//Reference the TextBox.
var textbox = $(this).next();
//Set the name attribute of the TextBox.
var id = this.id.split('_')[this.id.split('_').length - 1];
textbox[0].name = id.replace("Label","Textbox");
//Assign the value of Label to TextBox.
textbox.val(label.html());
//When Label is clicked, hide Label and show TextBox.
label.click(function() {
$(this).hide();
$(this).next().show();
});
//When focus is lost from TextBox, hide TextBox and show Label.
textbox.focusout(function() {
$(this).hide();
$(this).prev().html($(this).val());
$(this).prev().show();
});
});
Werfen Sie einen Blick auf [dieses Tutorial] (http://www.ezzyylearning.com/tutorial/editing-data-using-asp-net-gridview-control). Es behandelt alle Grundlagen der Bearbeitung und Aktualisierung von GridView. – VDWWD