我想通過GridView1_RowEditing1事件從gridview選擇行傳遞一個會話值。我能夠獲得primarykey(p.key)的會話值,但Associate_ID返回空值。gridview findcontrol什麼都不返回空字符串(空白)
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>
OUTPUT:
關鍵:5
名稱:
正如你可以看到我沒有得到所選字段的Associate_ID。 使用
string name = Convert.ToString(GridView1.Rows[3].Cells[3].FindControl("Associate_ID"));
也試過,但沒有結果,網格具有多行多列(8 * 15)
試過gridview findcontrol returning empty ""建議,並試圖阻止再結合上回發的GridView控件。從GridView控件
<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();
}
}
沒有這個代碼 刪除DataSourceID的幫助。我仍然爲Associate_ID獲得空白值。 我無法看到問題出在哪裏。請幫忙!
你所說的我試圖改變文本框的ID,但它不是給人一種空白「」 – rakesh
也嘗試重命名文本框,仍然一樣:( – rakesh
確認它確實使用下面的方式返回NULL。的FindControl(「TextBox1的」);'' 串疑問句= name.Text;)' - 這扔一個NullReferenceException錯誤 – rakesh