Asp.net 输入的值不在代码中
我正在努力学习ASPX,正在做一个网站(学习目的) 我在网格视图中有一个员工列表,当单击列表中的某个名称时,我必须将该值传递给db,并在单独的页面中显示详细信息。 我是通过使用这段代码来实现的Asp.net 输入的值不在代码中,asp.net,Asp.net,我正在努力学习ASPX,正在做一个网站(学习目的) 我在网格视图中有一个员工列表,当单击列表中的某个名称时,我必须将该值传递给db,并在单独的页面中显示详细信息。 我是通过使用这段代码来实现的 LinkButton lnkCustomerID = sender as LinkButton; string strCustomerID = lnkCustomerID.CommandArgument; Response.Redirect("EmployeeDetail.aspx?Parameter="
LinkButton lnkCustomerID = sender as LinkButton;
string strCustomerID = lnkCustomerID.CommandArgument;
Response.Redirect("EmployeeDetail.aspx?Parameter=" + strCustomerID);
它工作得很好
在详细信息页面中,我在另一个网格中显示详细信息,我使用下面的代码完成了这项工作
SqlCommand cmdCustomerDetails = new SqlCommand("GetEmployee", sqlConnect);
cmdCustomerDetails.CommandType = CommandType.StoredProcedure;
cmdCustomerDetails.Parameters.AddWithValue("@ID", employeeId);
if (sqlConnect.State == ConnectionState.Closed)
sqlConnect.Open();
//Create DataReader to read the record
SqlDataReader dReader = cmdCustomerDetails.ExecuteReader();
GridView2.DataSource = dReader;
GridView2.DataBind();
sqlConnect.Close();
它也起作用,但当我试图通过单击更新按钮来更新值时,它是一个项目模板,如图所示
<asp:GridView ID="GridView2" runat="server" CellPadding="4" ForeColor="#333333" GridLines="None"
AutoGenerateColumns="False">
<Columns>
<asp:TemplateField HeaderText="Name">
<ItemTemplate>
<asp:TextBox ID="txtName" runat="server" Text='<%# Eval("name")%>'></asp:TextBox>
<asp:RequiredFieldValidator ID="rqdfldName" runat="server" ErrorMessage="Name Cannot Be Empty"
ViewStateMode="Disabled" ControlToValidate="txtName" ValidationGroup="Update"></asp:RequiredFieldValidator>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Age">
<ItemTemplate>
<asp:TextBox ID="txtAge" runat="server" Text='<%# Eval("age")%>'></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Address">
<ItemTemplate>
<asp:TextBox TextMode="MultiLine" ID="txtAddress" runat="server" Text='<%# Eval("address")%>'></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:Button ID="btnUpdate" runat="server" Text="Update" ValidationGroup="Update"
CommandArgument='<%#Eval("id") %>' OnClick="btnUpdate_Click" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
<AlternatingRowStyle BackColor="White" />
<EditRowStyle BackColor="#7C6F57" />
<FooterStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#666666" ForeColor="White" HorizontalAlign="Center" />
<RowStyle BackColor="#E3EAEB" />
<SelectedRowStyle BackColor="#C5BBAF" Font-Bold="True" ForeColor="#333333" />
<SortedAscendingCellStyle BackColor="#F8FAFA" />
<SortedAscendingHeaderStyle BackColor="#246B61" />
<SortedDescendingCellStyle BackColor="#D4DFE1" />
<SortedDescendingHeaderStyle BackColor="#15524A" />
</asp:GridView>
当两个网格视图位于同一页面时,我可以进行更新,但当我将第二个网格移动到新页面时,更新不起作用。。请帮助我解决问题如果没有在页面加载功能中发回,我可以通过填充数据网格来解决问题
<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" EnableEventValidation="false" AutoEventWireup="true" CodeFile="EmployeeDetail.aspx.cs" Inherits="EmployeeDetail" %>
int empID;
string age, address, name;
Button btnUpdateUser = sender as Button;
TextBox tbName, tbAge, tbAddress;
SqlConnection sqlConnect;
try
{
tbName = (TextBox)GridView2.Rows[0].FindControl("txtName");
tbAge = (TextBox)GridView2.Rows[0].FindControl("txtAge");
tbAddress = (TextBox)GridView2.Rows[0].FindControl("txtAddress");
sqlConnect = new SqlConnection("server=WINNER-PC\\SQLEXPRESS;integrated security=true;initial catalog=Test");
if (sqlConnect.State == ConnectionState.Closed)
sqlConnect.Open();
empID = Convert.ToInt32(btnUpdateUser.CommandArgument);
name = tbName.Text;
age = tbAge.Text;
address = tbAddress.Text;
SqlCommand sqlCommand = new SqlCommand("UpdateEmployee", sqlConnect);
sqlCommand.CommandType = CommandType.StoredProcedure;
sqlCommand.Parameters.AddWithValue("@ID", empID);
sqlCommand.Parameters.AddWithValue("@Name", name);
sqlCommand.Parameters.AddWithValue("@Age", age);
sqlCommand.Parameters.AddWithValue("@Address", address);
sqlCommand.ExecuteNonQuery();
Response.Redirect("Employees.aspx", false);
}
catch (Exception ex)
{
throw ex;
}