GridView1_RowEditing1 이벤트를 사용하여 gridview select 행에서 세션 값을 전달하려고합니다. primarykey (p.key)에 대한 세션 값을 가져올 수 있지만 Associate_ID가 빈 값을 반환합니다.gridview findcontrol nothing returns empty string (공백)
C# 코드 뒤에
protected void GridView1_RowEditing1(object sender, GridViewEditEventArgs e)
{
int primarykey = Convert.ToInt32(GridView1.DataKeys[e.NewEditIndex].Value);
string name = Convert.ToString(GridView1.Rows[e.NewEditIndex].FindControl("Associate_ID"));
Session["Number"] = primarykey;
Session["Name"] = name;
//redirect
Response.Redirect("updatee.aspx");
}
.ASPX
<asp:TemplateField HeaderText="Associate_ID" SortExpression="Associate_ID">
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("Associate_ID") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("Associate_ID") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
출력 :
키 : 5
이름 : 당신이 볼 수 있듯이 내가
을 받고 있지 않다선택된 필드에 대한 Associate_ID. 는 또한
string name = Convert.ToString(GridView1.Rows[3].Cells[3].FindControl("Associate_ID"));
사용하여 시도했지만 결과가 없었다 그리드는 다수의 행과 열 (15 * 8)
은 gridview findcontrol returning empty ""을 제안하려고 재 바인딩 포스트 백의 GridView 정지하려고있다. 있는 gridview에서 제거 DataSourceID
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="ID" OnRowEditing="GridView1_RowEditing1" OnSelectedIndexChanged="GridView1_SelectedIndexChanged">
코드이의
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//DataSourceID = "SqlDataSource1"
GridView1.DataSource = SqlDataSource1;
GridView1.DataBind();
}
}
없음 뒤에이있었습니다. Associate_ID에 여전히 공백 값이 표시됩니다. 어디에 문제가 있는지 알 수 없습니다. 도와주세요!
를 통해 제공하지만이를 포기하지 않을거야 내 작업 코드는 모양입니다 것입니다 blank "" – rakesh
또한 텍스트 상자의 이름을 변경하려고했지만 여전히 동일합니다. ( – rakesh
는 아래에서 NULL을 실제로 반환한다는 것을 확인했습니다. 'TextBox name = (TextBox) GridView1.Rows [3] .Cells [3].-의 FindControl ("TextBox1에");' '문자열 QUES = name.Text는)'이 – rakesh