repeater问题

是你_不懂 2013-04-26 05:09:23
遍历repeater得到第三方控件TextBox,目的是修改文本框中的值,点击保存时得到的值并不是当前所输入的值,而是数据源中的原值,也就是数据并未更新,怎么得到输入的新值?
...全文
278 39 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
39 条回复
切换为时间正序
请发表友善的回复…
发表回复
是你_不懂 2013-04-27
  • 打赏
  • 举报
回复
引用 37 楼 liuchaolin 的回复:
- - ! res.MessageContent = txtContent.Text; 改成 res.MessageContent=Request.Form[txtContent.UniqueID];
谢谢,可能就是因为服务器控件方面的问题吧,现在解决了,谢谢!灰常感激。
是你_不懂 2013-04-27
  • 打赏
  • 举报
回复
引用 35 楼 liuchaolin 的回复:
[quote=引用 34 楼 lijingye0911 的回复:] [quote=引用 32 楼 liuchaolin 的回复:] 必须是post提交
小女子愚钝,能不能说细一点,谢谢[/quote] 需要用服务器控件来执行[/quote] 谢谢你的提醒,我弄出来了;
 TextBox txtContent = rptPublish.Controls[j].FindControl("txtContent") as TextBox;
                string txt = Request.Form[txtContent.UniqueID];
                res.MessageContent = txt;
                txtContent.Text = res.MessageContent;
                dc.SaveChanges();
                ui.Alert(this, "修改成功");
这样就可以了。
md5e 2013-04-27
  • 打赏
  • 举报
回复
- - ! res.MessageContent = txtContent.Text; 改成 res.MessageContent=Request.Form[txtContent.UniqueID];
是你_不懂 2013-04-27
  • 打赏
  • 举报
回复
引用 35 楼 liuchaolin 的回复:
[quote=引用 34 楼 lijingye0911 的回复:] [quote=引用 32 楼 liuchaolin 的回复:] 必须是post提交
小女子愚钝,能不能说细一点,谢谢[/quote] 需要用服务器控件来执行[/quote] 我用了LinkButton protected void lblPublish_Click(object sender, EventArgs e) { //MessageID MsgID = Convert.ToInt32(des.Decrypt(Request["MsgID"])); var res = (from a in dc.VM_INT_Message where a.MessageID == MsgID select a).FirstOrDefault(); if (res != null) { ////foreach (RepeaterItem dl in rptPublish.Items) ////{ for (int j = 0; j < rptPublish.Controls.Count; j++) { TextBox txtContent = rptPublish.Controls[j].FindControl("txtContent") as TextBox; res.MessageContent = txtContent.Text; //TextBox txtContent = (TextBox)(dl.FindControl("txtContent")); //res.MessageContent = txtContent.Text; dc.SaveChanges(); ui.Alert(this, "修改成功"); } } } 还是不行的
md5e 2013-04-27
  • 打赏
  • 举报
回复
引用 34 楼 lijingye0911 的回复:
[quote=引用 32 楼 liuchaolin 的回复:] 必须是post提交
小女子愚钝,能不能说细一点,谢谢[/quote] 需要用服务器控件来执行
是你_不懂 2013-04-27
  • 打赏
  • 举报
回复
引用 32 楼 liuchaolin 的回复:
必须是post提交
小女子愚钝,能不能说细一点,谢谢
是你_不懂 2013-04-27
  • 打赏
  • 举报
回复
引用 31 楼 liuchaolin 的回复:
这个肯定是不行的,因为每次都是新的页面,rptPublish已经不是之前的rptPublish了
没有,他是同一个页面,rptPublish还是之前那个,你在获取文本框的值,他得到的还是原来的那个,没法得到新输入的。
md5e 2013-04-27
  • 打赏
  • 举报
回复
必须是post提交
md5e 2013-04-27
  • 打赏
  • 举报
回复
这个肯定是不行的,因为每次都是新的页面,rptPublish已经不是之前的rptPublish了
是你_不懂 2013-04-27
  • 打赏
  • 举报
回复
string type = Request.QueryString["type"];
是你_不懂 2013-04-27
  • 打赏
  • 举报
回复
引用 28 楼 liuchaolin 的回复:
[quote=引用 27 楼 lijingye0911 的回复:] [quote=引用 26 楼 liuchaolin 的回复:] [quote=引用 23 楼 lijingye0911 的回复:] 忘了说了,是在page_load事件里面的
那你怎么提交和判断提交的?[/quote] TextBox txtContent = rptPublish.Controls[j].FindControl("txtContent") as TextBox; 提交的时候寻找这个控件,还是从原数据源的那个repeater中FindControl,他获取到的还是原来的数据, 我觉得现在是要给获取到的这个文本框重新赋值就就可以。问题就是,此刻你获取不到你新输入的值?[/quote] 当然是提交的时候找了,不提交是不会有Request.Form的,所以关键你的type是怎么来的,是Request.Form[]还是Request.QueryString[],这个很关键[/quote] <a href="Edit.aspx?type=savezhu&MsgID=<%#Eval("MessageID") %>&MemID=<%#Eval("MemberID") %>"> save</a>
md5e 2013-04-27
  • 打赏
  • 举报
回复
引用 27 楼 lijingye0911 的回复:
[quote=引用 26 楼 liuchaolin 的回复:] [quote=引用 23 楼 lijingye0911 的回复:] 忘了说了,是在page_load事件里面的
那你怎么提交和判断提交的?[/quote] TextBox txtContent = rptPublish.Controls[j].FindControl("txtContent") as TextBox; 提交的时候寻找这个控件,还是从原数据源的那个repeater中FindControl,他获取到的还是原来的数据, 我觉得现在是要给获取到的这个文本框重新赋值就就可以。问题就是,此刻你获取不到你新输入的值?[/quote] 当然是提交的时候找了,不提交是不会有Request.Form的,所以关键你的type是怎么来的,是Request.Form[]还是Request.QueryString[],这个很关键
是你_不懂 2013-04-27
  • 打赏
  • 举报
回复
引用 26 楼 liuchaolin 的回复:
[quote=引用 23 楼 lijingye0911 的回复:] 忘了说了,是在page_load事件里面的
那你怎么提交和判断提交的?[/quote] TextBox txtContent = rptPublish.Controls[j].FindControl("txtContent") as TextBox; 提交的时候寻找这个控件,还是从原数据源的那个repeater中FindControl,他获取到的还是原来的数据, 我觉得现在是要给获取到的这个文本框重新赋值就就可以。问题就是,此刻你获取不到你新输入的值?
md5e 2013-04-27
  • 打赏
  • 举报
回复
引用 23 楼 lijingye0911 的回复:
忘了说了,是在page_load事件里面的
那你怎么提交和判断提交的?
是你_不懂 2013-04-27
  • 打赏
  • 举报
回复
我用了两种方法: 1.通过LinkButton的按钮事件; 2.通过<a></a>标签在page_load事件中通过参数
by_封爱 2013-04-27
  • 打赏
  • 举报
回复

for int i=0 i<rep1.items.count  i++
 textbox t=rep1.items[i].findcontrol("txtContent") as textbox;
 resp.write(t.text);
手写的可能有错误,, 一直这个模式 从来没有错误..
是你_不懂 2013-04-27
  • 打赏
  • 举报
回复
忘了说了,是在page_load事件里面的
md5e 2013-04-27
  • 打赏
  • 举报
回复
引用 21 楼 lijingye0911 的回复:
前边的事件咧?
是你_不懂 2013-04-27
  • 打赏
  • 举报
回复
md5e 2013-04-27
  • 打赏
  • 举报
回复
引用 19 楼 lijingye0911 的回复:
出现个这:控件:rptPublish$ctl00$txtContent= 可是 string txt = Request.Form[txtContent.UniqueID];还是为null
不可能啊,你是怎么提交数据的?这段代码你是写在什么事件里面?
加载更多回复(19)

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧