为什么findcontrol无法取到值

这是我的CS代码protectedvoidDLSlideNews_UpdateCommand(objectsource,DataListCommandEventArgse... 这是我的CS代码
protected void DLSlideNews_UpdateCommand(object source, DataListCommandEventArgs e)
{
string newsurl = ((TextBox)e.Item.FindControl("TBNewsUrl")).Text;
string imgurl = ((TextBox)e.Item.FindControl("TBImgUrl")).Text;
int id = Convert.ToInt32(DLSlideNews.DataKeys[e.Item.ItemIndex]);
CSlideNews mysnews = new CSlideNews(newsurl, imgurl, id.ToString());
admin myadmin = admin.adminbuild(Session["username"].ToString());
myadmin.SlideNewsEdit(Server.MapPath("slidenews.xml"), mysnews);
Response.Write("<script>alert('操作成功!')</script>");
DLSlideNews.EditItemIndex = -1;
bind();
}
这是我的ASPX代码
<asp:DataList ID="DLSlideNews" runat="server" Width="823px" DataKeyField="id"
onupdatecommand="DLSlideNews_UpdateCommand"
oneditcommand="DLSlideNews_EditCommand"
oncancelcommand="DLSlideNews_CancelCommand">
<HeaderTemplate>
<table width="820" class="customtable" cellpadding="0" cellspacing="0" border="1">
<tr>
<th>新闻URL</th>
<th>图片URL</th>
<th>操作</th>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td><%#DataBinder.Eval(Container.DataItem,"url") %></td>
<td><%#DataBinder.Eval(Container.DataItem,"imgurl") %></td>
<td>
<asp:LinkButton ID="LBEdit" runat="server" Text="编辑" CommandName="edit"></asp:LinkButton>
</td>
</tr>
</ItemTemplate>
<EditItemTemplate>
<tr>
<td><asp:TextBox ID="TBNewsUrl" runat="server" Text='<%#DataBinder.Eval(Container.DataItem,"url") %>'></asp:TextBox></td>
<td><asp:TextBox ID="TBImgUrl" runat="server" Text='<%#DataBinder.Eval(Container.DataItem,"imgurl") %>'></asp:TextBox></td>
<td>
<asp:LinkButton ID="LBConfirm" runat="server" Text="确认" CommandName="update"></asp:LinkButton>
<asp:LinkButton ID="LBCancel" runat="server" Text="取消" CommandName="cancel"></asp:LinkButton>
</td>
</tr>
</EditItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:DataList>
试了好几次 跟踪代码都显示无法取到我输入的值 最后newsurl imgurl都为空字符串 这是为啥啊?我快搞疯了 一样的代码在别的地方就好好的啊~
展开
 我来答
巧暮雨cW
2010-04-13 · TA获得超过499个赞
知道小有建树答主
回答量:367
采纳率:0%
帮助的人:373万
展开全部
肯定取不到值的
string newsurl = ((TextBox)e.Item.FindControl("TBNewsUrl")).Text;
TBNewsUrl 他是建立在DataList里面的,必须要在DataList的事件里面去找
方法:
在DLSlideNews__ItemDataBound这个事件里面去找
string newsurl = ((TextBox)e.Item.FindControl("TBNewsUrl")).Text;
然后你可以弄个隐藏域,把你需要传递的值赋给隐藏域
比如<input type="hidden" runat="server" id="hidvalue">;
hidvalue.value = newsurl
最后在 DLSlideNews_UpdateCommand事件中
把newsurl 换成hidvalue.value
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式