asp.net textbox boundfield

asp.net - obtener valor de asp boundfield y almacenar en la base de datos sql con el botón clic?



textbox (2)

Quiero obtener este valor del formulario web 1 (lado del administrador) cuando se hace clic en el botón:

aquí está mi código de solicitud de crédito completo:

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" CssClass="table table-hover table-striped" onselectedindexchanged="GridView1_SelectedIndexChanged"> <Columns> <asp:BoundField DataField="Username" HeaderText="Username" SortExpression="Username" /> <asp:BoundField DataField="LastName" HeaderText="LastName" SortExpression="LastName" /> <asp:BoundField DataField="FirstName" HeaderText="FirstName" SortExpression="FirstName" /> <asp:BoundField DataField="CompanyName" HeaderText="CompanyName" SortExpression="CompanyName" /> <asp:BoundField DataField="EmailAddress" HeaderText="EmailAddress" SortExpression="EmailAddress" /> <asp:BoundField DataField="CompanyAddress" HeaderText="CompanyAddress" SortExpression="CompanyAddress" /> <asp:BoundField DataField="IncomeRange" HeaderText="IncomeRange" SortExpression="IncomeRange" /> <asp:BoundField DataField="CreditRequest" HeaderText="CreditRequest" SortExpression="CreditRequest" /> <asp:BoundField DataField="ContactNumber" HeaderText="ContactNumber" SortExpression="ContactNumber" /> <asp:TemplateField> <ItemTemplate> <asp:Button ID="Button1" runat="server" Text="Approve" CommandName="Approve" CommandArgument=''<%# Eval("CreditRequest") %>'' /> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView>

código detrás:

protected void Page_Load(object sender, EventArgs e) { if (Session["IslandGasAdminFM"] != null) { bindgrid(); Label1.Text = "- Finance Manager"; } else { Response.Write("<script>alert(''Finance Manager credentials needed''); window.location.href=''LogIn.aspx'';</script>"); } } public void bindgrid() { SqlConnection conn = new SqlConnection("Data Source = ''PAULO''; Initial Catalog=ShoppingCartDB;Integrated Security =True"); SqlCommand cmd = new SqlCommand("select * from CreditRequests ", conn); SqlDataAdapter da = new SqlDataAdapter("", conn); da.SelectCommand = new SqlCommand("select * from CreditRequests", conn); DataSet ds = new DataSet(); da.Fill(ds, "data"); GridView1.DataSource = ds.Tables[0].DefaultView; GridView1.DataBind(); }

y pasarlo a webform 2 (lado del cliente):

<asp:TextBox ID="txtCredit" runat="server"></asp:TextBox>

esto es lo que obtuve hasta ahora:

lado administrativo:

<asp:TemplateField> <ItemTemplate> <asp:Button ID="btnApprove" runat="server" Text="Approve" OnClick ="btnApprove_Click" /> </ItemTemplate> </asp:TemplateField>

código detrás:

protected void btnApprove_Click(object sender, EventArgs e) { //code for getting the boundfield "creditrequest" and if possible, store it in database for future use. }

¿hay alguna forma de obtener el valor de la solicitud de crédito de boundfield y almacenarlo en la base de datos?


Aquí puedes hacer dos cosas 1.since que estás usando Button, agrega una nueva fila en gridview como esta

<asp:TemplateField HeaderText="Actions"> <ItemTemplate> <asp:Button CommandArgument=''<%#Eval("CreditRequest") %>'' runat="server" Text="View" ID="btnEdit" OnClick="btnEdit_OnClick"/> </ItemTemplate> </asp:TemplateField>

y el código detrás es así

protected void btnEdit_OnClick(object sender, EventArgs e) { if (sender != null) { string id = ((Button)sender).CommandArgument.ToString(); Response.Redirect("yourpagename.aspx?value=" + id); } }

y en otra página, el lado del cliente obtiene el valor de la cadena de consulta como este

string value = Request.QueryString["value"])

Y el segundo y sencillo método será usar hipervínculo en lugar de un botón como este

<asp:TemplateField HeaderText="Actions"> <ItemTemplate> <asp:HyperLink runat="server" NavigateUrl=''<%# Eval("CreditRequest", "~/yourpagename.aspx?value={0}") %>'' Text="Edit" "></asp:HyperLink> </ItemTemplate> </asp:TemplateField>


Copie el código a continuación EXACTAMENTE como lo estoy mostrando y funcionará. Acabo de probar en mi computadora:

.ASPX:

<asp:GridView ID="GridView1" runat="server" OnRowCommand="GridView1_RowCommand" AutoGenerateColumns="false"> <Columns> <asp:BoundField DataField="Name" HeaderText="Name" /> <asp:BoundField DataField="CreditRequest" HeaderText="Credit Request" /> <asp:TemplateField> <ItemTemplate> <asp:Button runat="server" Text="Approve" CommandName="Approve" CommandArgument=''<%# Eval("CreditRequest") %>'' /> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView>

Código detrás:

public partial class delete_me : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack)//THIS IS IMPORTANT.GridView1_RowCommand will not fire unless you add this line { var p1 = new Person() { Name = "Person 1",CreditRequest="Credit Request 1" }; var p2 = new Person() { Name = "Person 2",CreditRequest="Credit Request 2" }; var list = new List<Person> { p1, p2 }; GridView1.DataSource = list; GridView1.DataBind(); } } protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e) { System.Diagnostics.Debugger.Break(); if(e.CommandName == "Approve") { string creditRequest = e.CommandArgument as string; } } } public class Person { public string Name { get; set; } public string CreditRequest { get; set; } }