求助!!DataGrid的模板列更新值带不过来???

eyis 2005-06-01 11:53:18
Person_ShowTF要获得的模板列id为showTF的DropDownList的选定值,可现在Person_ShowTF获得的是一直是初始值,更新过的SelectedValue带不过来。

[最后要实现这样的效果(state列)http://61.180.163.222/quickstart/aspplus/samples/webforms/data/CS/datagrid9.aspx]

cs文件:
private void mydg_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
string Person_ShowTF = ((DropDownList)e.Item.FindControl("showTF")).SelectedValue;//(就是这里!!!)
string Id=((Label)e.Item.FindControl("idlist")).Text;
string updateCmd = "UPDATE Tjjob_Person SET Person_ShowTF = '"+Person_ShowTF+"' where Id = "+Id;
Response.Write(updateCmd);
//myData.Update(updateCmd);
this.mydg.EditItemIndex=-1;
Bind();
}


页面的模板列:
<asp:TemplateColumn HeaderText="是否显示">
<ItemTemplate>
<asp:Label runat="server" Text='<%# base.GetShowTF(DataBinder.Eval(Container, "DataItem.id").ToString()) %>' ID="Label1">
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList runat="server" SelectedIndex='<%# Convert.ToInt16(DataBinder.Eval(Container, "DataItem.Person_ShowTF")) %>' id="showTF">
<asp:ListItem Value="000">隐藏</asp:ListItem>
<asp:ListItem Value="111">显示</asp:ListItem>
</asp:DropDownList>
</EditItemTemplate>
</asp:TemplateColumn>
...全文
79 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
brando_beat 2005-06-01
  • 打赏
  • 举报
回复
cs文件:
private void mydg_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
string Person_ShowTF = ((DropDownList)e.Item.FindControl("showTF")).SelectedValue;//(就是这里!!!)
string Id=((Label)e.Item.FindControl("idlist")).Text;
string updateCmd = "UPDATE Tjjob_Person SET Person_ShowTF = '"+Person_ShowTF+"' where Id = "+Id;
Response.Write(updateCmd);
//myData.Update(updateCmd);
this.mydg.EditItemIndex=-1;
Bind();
}

这段代码是有问题的,你跟踪
string Person_ShowTF = ((DropDownList)e.Item.FindControl("showTF")).SelectedValue;//(就是这里!!!)
付值了吗??
然后你得 数据源重新绑定的时候,有没有换掉相应的数据阿
eyis 2005-06-01
  • 打赏
  • 举报
回复
问题解决,多谢两位
hchxxzx 2005-06-01
  • 打赏
  • 举报
回复
楼上 hackate(兰花开香入梦境,独思佳人亦飘然!!) 正确.
你这个原因,主要是没有放在上述判断中,导致每次页面提交,你的绑定值被重新绑定一次,然后选择项就回到了默认的行上,当然取不到.写进去就可以了.
hackate 2005-06-01
  • 打赏
  • 举报
回复
你更新的时候值带不过去,估计是没有把拌定数据库的代码放到!IsPostBack中。

在page_load事件中写

if(!IsPostBack)
{
//拌定数据。。
}
ye_zi 2005-06-01
  • 打赏
  • 举报
回复
string Person_ShowTF = ((DropDownList)e.Item.FindControl("showTF")).SelectedValue;//(就是这里!!!)改成
string Person_ShowTF = ((DropDownList)e.Item.FindControl("showTF)).selectedindex(0);试试

62,046

社区成员

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

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

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

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