DataList 怎样获取EditTemplate中TextBox修改后的值??
具体请看代码,
.aspx代码:
<EditItemTemplate>
<td>
<asp:Label ID="Lbl_au_id" Text='<%#Eval("au_id")%>' runat="server"></asp:Label>
</td>
<td>
<asp:TextBox ID="Txt_au_lname" Text='<%#Eval("au_lname")%>' runat="server" ></asp:TextBox>
</td>
<td>
<asp:TextBox ID="Txt_au_fname" Text='<%#Eval("au_fname")%>' runat="server"></asp:TextBox>
</td>
<td>
<asp:TextBox ID="Txt_phone" Text='<%#Eval("phone")%>' runat="server"></asp:TextBox>
</td>
<td>
<asp:TextBox ID="Txt_address" Text='<%#Eval("address")%>' runat="server"></asp:TextBox>
</td>
<td>
<asp:LinkButton ID="LinkButton1" Text="更新" CommandName="Update" runat="server"></asp:LinkButton>
<asp:LinkButton ID="LinkButton2" Text="取消" CommandName="Cancel" runat="server"></asp:LinkButton>
</td>
<td>
<asp:LinkButton ID="LinkButton3" Text="删除" CommandName="Delete" runat="server"></asp:LinkButton>
</td>
</EditItemTemplate>
.aspx.cs代码
protected void DataList1_UpdateCommand(object source, DataListCommandEventArgs e)
{
try
{
DataList ItemsList = (DataList)source;
if (e.Item.ItemType == ListItemType.EditItem)
{
TextBox Txt_au_lname = (TextBox)e.Item.FindControl("Txt_au_lname");
TextBox Txt_au_fname = (TextBox)e.Item.FindControl("Txt_au_fname");
TextBox Txt_phone = (TextBox)e.Item.FindControl("Txt_phone");
TextBox Txt_address = (TextBox)e.Item.FindControl("Txt_address");
string Id = ItemsList.DataKeys[e.Item.ItemIndex].ToString();
string a_ulname = Txt_au_lname.Text;
string a_ufname = Txt_au_fname.Text;
string a_phone = Txt_phone.Text;
string a_address = Txt_address.Text;
DatalistEdit da = new DatalistEdit();
int r = da.UpdateStorage(Id, a_ulname, a_ufname, a_phone, a_address);
}
}
catch (Exception s)
{
Response.Write(s.Message .ToString ());
}
}
为什么我的TextBox Txt_au_lname = (TextBox)e.Item.FindControl("Txt_au_lname");这段代码,获取不到改变后的TextBox中的值啊?
求助!!!
[解决办法]
关注中。。。
[解决办法]
if (e.Item.ItemType == ListItemType.EditItem)
{
这个去掉,然后断点跟一下
[解决办法]
for(int i=0;i<datalist.items.count;i++)
{
TextBox Txt_au_lname = datalist.Item[i].FindControl("Txt_au_lname") as TextBox
}
这样试试
[解决办法]
这台机子没环境楼主帮补到你了
调试下看看
[解决办法]
AutoPostBack 回发服务器 晕
[解决办法]
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindDataList();
}
}
public void BindDataList()
{
DatalistEdit da = new DatalistEdit();
DataList1.DataSource = da.SearchAll();
DataList1.DataBind();
}
protected void DataList1_UpdateCommand(object source, DataListCommandEventArgs e)
{
//......
BindDataList();
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DatalistEdit da = new DatalistEdit();
DataList1.DataSource = da.SearchAll();
DataList1.DataBind();
}
}
protected void Page_PreRender(object sender, EventArgs e)
{
DatalistEdit da = new DatalistEdit();
DataList1.DataSource = da.SearchAll();
DataList1.DataBind();
}