前台在datagrid中:
<EditItemTemplate>
<table class="f1" width="100%" border="0" cellpadding="0" cellspacing="0" style="BORDER-COLLAPSE: collapse">
<tr>
<td width="33%">
<asp:TextBox Runat=server ID="kup" Text='<%# DataBinder.Eval(Container.DataItem,"kuproducts")%>'/>
</td>
<td width="33%">
<asp:TextBox ID="kut" Runat=server Text='<%# DataBinder.Eval(Container.DataItem,"kutxm")%>'/></td>
<td width="33%">
<asp:TextBox ID="kum" Runat=server Text='<%# DataBinder.Eval(Container.DataItem,"kumanufacturer")%>'/></td>
</tr>
</table>
</EditItemTemplate>点击后生成新的一行后台代码如下:
public void addnewrow(object sender,EventArgs e)
{
addnewrows.Visible=true;
//点击新加一行生成行
DataSet ds=(DataSet)Session["mydata"];
DataTable dt=ds.Tables["d1"];
DataRow dr=dt.NewRow();
dt.Rows.Add(dr);
Session["mydata"]=ds;
int nnewitemindex=jxschange_allshoplist.Items.Count;
if(nnewitemindex>=jxschange_allshoplist.PageSize)
{
jxschange_allshoplist.CurrentPageIndex++;
nnewitemindex=0;
}
jxschange_allshoplist.EditItemIndex=nnewitemindex;
updateview();
}在button中点击代码如下.怎么不能把新加的那行的值找到?而是说未将对象引用设置到对象的实例。
:public void addnewrow_sure(object sender,System.EventArgs e)
{
foreach(DataGridItem oDataGridItem in jxschange_allshoplist.Items)
{
TextBox kupp=(TextBox)oDataGridItem.FindControl("kup");
Response.Write("<script>alert('"+kupp.Text.ToString()+"');</script>");
TextBox kutt=(TextBox)oDataGridItem.FindControl("kut");
Response.Write("<script>alert('"+kutt.Text.ToString()+"');</script>");
TextBox kumm=(TextBox)oDataGridItem.FindControl("kum");
Response.Write("<script>alert('"+kumm.Text.ToString()+"');</script>");
}
}
<EditItemTemplate>
<table class="f1" width="100%" border="0" cellpadding="0" cellspacing="0" style="BORDER-COLLAPSE: collapse">
<tr>
<td width="33%">
<asp:TextBox Runat=server ID="kup" Text='<%# DataBinder.Eval(Container.DataItem,"kuproducts")%>'/>
</td>
<td width="33%">
<asp:TextBox ID="kut" Runat=server Text='<%# DataBinder.Eval(Container.DataItem,"kutxm")%>'/></td>
<td width="33%">
<asp:TextBox ID="kum" Runat=server Text='<%# DataBinder.Eval(Container.DataItem,"kumanufacturer")%>'/></td>
</tr>
</table>
</EditItemTemplate>点击后生成新的一行后台代码如下:
public void addnewrow(object sender,EventArgs e)
{
addnewrows.Visible=true;
//点击新加一行生成行
DataSet ds=(DataSet)Session["mydata"];
DataTable dt=ds.Tables["d1"];
DataRow dr=dt.NewRow();
dt.Rows.Add(dr);
Session["mydata"]=ds;
int nnewitemindex=jxschange_allshoplist.Items.Count;
if(nnewitemindex>=jxschange_allshoplist.PageSize)
{
jxschange_allshoplist.CurrentPageIndex++;
nnewitemindex=0;
}
jxschange_allshoplist.EditItemIndex=nnewitemindex;
updateview();
}在button中点击代码如下.怎么不能把新加的那行的值找到?而是说未将对象引用设置到对象的实例。
:public void addnewrow_sure(object sender,System.EventArgs e)
{
foreach(DataGridItem oDataGridItem in jxschange_allshoplist.Items)
{
TextBox kupp=(TextBox)oDataGridItem.FindControl("kup");
Response.Write("<script>alert('"+kupp.Text.ToString()+"');</script>");
TextBox kutt=(TextBox)oDataGridItem.FindControl("kut");
Response.Write("<script>alert('"+kutt.Text.ToString()+"');</script>");
TextBox kumm=(TextBox)oDataGridItem.FindControl("kum");
Response.Write("<script>alert('"+kumm.Text.ToString()+"');</script>");
}
}
public void addnewrow(object sender,EventArgs e)
会有问题
datagrid变成编辑模式,才有textbox如果点按钮刷新页面 datagrid就不是编辑模式了 所以找不到textbox
if(e.Item.ItemType==ListItemType.EditItem)
{
}
中找
在addnewrow_sure 这个函数的前面你的思路是不对的不应该把TextBox放入EditItemTemplate中 因为这样只有在编辑时才能找到它