Gridview怎么在里面编辑模板里加多个Dropdownlist?

fengaiyue1314 2010-06-12 09:19:42
加一个我会,加多个我就不会啦。

加一个我会。

<asp:TemplateField HeaderText="终端编号" FooterText="DCT_Id" >
<ItemTemplate ><%# Eval("DCT_Id") %></ItemTemplate>
<EditItemTemplate>
<asp:HiddenField ID="HiddenField1" runat="server" />
<asp:DropDownList ID="DropDownList1" runat="server">
</asp:DropDownList>
</EditItemTemplate>
</asp:TemplateField>



加多个呢?高手请给一个合理的方法。

没编辑的时候还得要显示,点编辑的时候变成dropdownlist.
...全文
82 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
zfb312 2010-06-12
  • 打赏
  • 举报
回复
自己多试试,先按自己的想法加进去,不行再问别人怎么解决。
解决问题不是最终目的,解决问题的思考过程才是最重要的。
孟子E章 2010-06-12
  • 打赏
  • 举报
回复
Ref:
http://dotnet.aspx.cc/article/a933b187-06c3-4263-9eec-414a54d9c815/read.aspx
孟子E章 2010-06-12
  • 打赏
  • 举报
回复
<EditItemTemplate>
<asp:HiddenField ID="HiddenField1" runat="server" />
<asp:DropDownList ID="DropDownList1" runat="server"></asp:DropDownList>
<asp:DropDownList ID="DropDownList2" runat="server"></asp:DropDownList>
</EditItemTemplate>
孟子E章 2010-06-12
  • 打赏
  • 举报
回复
写多个就是了
fengaiyue1314 2010-06-12
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 xxfxiazai 的回复:]
引用 7 楼 fengaiyue1314 的回复:
引用 2 楼 net_lover 的回复:
<EditItemTemplate>
<asp:HiddenField ID="HiddenField1" runat="server" />
<asp:DropDownList ID="DropDownList1" runat="server"></asp:DropDownList>
<as……
[/Quote]

就按我10楼的例子,你变下给我看。像这玩意没必要保留吧。友友弄一个给我看。
zhoulingsmile 2010-06-12
  • 打赏
  • 举报
回复
帮你顶一下。。。加油了。。。
fengaiyue1314 2010-06-12
  • 打赏
  • 举报
回复
在友友们提示的基础上我又这样写啦下。
运行没问题,就是点击 编辑没反应。大家帮我看看错在哪里,我现在正做项目,时间有点急!!

前台:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="A_Id"
OnRowCancelingEdit="GridView1_RowCancelingEdit" OnRowDataBound="GridView1_RowDataBound"
OnRowDeleting="GridView1_RowDeleting" OnRowEditing="GridView1_RowEditing" OnRowUpdating="GridView1_RowUpdating">
<Columns>
<asp:TemplateField HeaderText="终端编号">
<ItemTemplate><%# Eval("DCT_Id") %></ItemTemplate>
<EditItemTemplate>
<asp:HiddenField ID="HiddenField1" runat="server" />
<asp:DropDownList ID="DropDownList1" runat="server">
</asp:DropDownList>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="用电方案">
<ItemTemplate><%#Eval("UP_Name")%></ItemTemplate>
<EditItemTemplate>
<asp:HiddenField ID="HiddenField2" runat="server" />
<asp:DropDownList ID="DropDownList2" runat="server">
</asp:DropDownList>
</EditItemTemplate>
</asp:TemplateField>

后台:

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if((e.Row.RowState & DataControlRowState.Edit)==DataControlRowState.Edit)
{
HiddenField hd1 = e.Row.FindControl("HiddenField1") as HiddenField;
DropDownList lst1 = e.Row.FindControl("DropDownList1") as DropDownList;
lst1.DataSource = AmmeterInfo.SelectDCT();
lst1.DataValueField = "DCT_Id";
lst1.DataTextField = "DCT_Name";
lst1.DataBind();
lst1.SelectedValue = hd1.Value;
//
HiddenField hd2 = e.Row.FindControl("HiddenField2") as HiddenField;
DropDownList lst2 = e.Row.FindControl("DropDownList2") as DropDownList;
lst2.DataSource = AmmeterInfo.SelectPlan();
lst2.DataValueField = "UP_Id";
lst2.DataTextField = "UP_Name";
lst2.DataBind();
lst2.SelectedValue = hd2.Value;
Bing();
}
}
fengaiyue1314 2010-06-12
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 wuyq11 的回复:]
<ItemTemplate>
<asp:DropDownList ID="ddlSort" runat="server" Width="98%">
</asp:DropDownList>
<asp:HiddenField ID="Hd_Sort" runat="server" Value='<%# Eval("BalSort")%>' />
</ItemTemplate>
pr……
[/Quote]

你说的和我问的不一样,但是还可以这样写,基本上是一样的,可以互相学习下。

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns ="False"
DataKeyNames="A_Id"
onrowcancelingedit="GridView1_RowCancelingEdit"
onrowdatabound="GridView1_RowDataBound"
onrowdeleting="GridView1_RowDeleting"
onrowediting="GridView1_RowEditing"
onrowupdating="GridView1_RowUpdating">
<Columns>
<asp:TemplateField HeaderText="终端编号" >
<ItemTemplate ><%# Eval("DCT_Id") %></ItemTemplate>
<EditItemTemplate>
<asp:HiddenField ID="HiddenField1" runat="server" />
<asp:DropDownList ID="DropDownList1" runat="server">
</asp:DropDownList>
</EditItemTemplate>
</asp:TemplateField>

后台:

protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
Bing();
}

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if((e.Row.RowState & DataControlRowState.Edit)==DataControlRowState.Edit)
{
HiddenField hd = e.Row.FindControl("HiddenField") as HiddenField;
DropDownList lst = e.Row.FindControl("DropDownList1") as DropDownList;
lst.DataSource = AmmeterInfo.SelectDCT();
lst.DataValueField = "DCT_Id";
lst.DataTextField = "DCT_Name";
lst.DataBind();
lst.SelectedValue = hd.Value;
Bing();
}
}


手高要明白我问的问题呀,也就是有多列 当Gridview 出显的时候 是有内容地,当点编辑时出现Dropdownlist . 并且是多个Dropdownlist!!!

一个我会的。多个现在不会。
xxfxiazai 2010-06-12
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 fengaiyue1314 的回复:]
引用 2 楼 net_lover 的回复:
<EditItemTemplate>
<asp:HiddenField ID="HiddenField1" runat="server" />
<asp:DropDownList ID="DropDownList1" runat="server"></asp:DropDownList>
<asp:DropDownList ID="DropDown……
[/Quote]
这样啊,那再添加一个TemplateField会吗
fengaiyue1314 2010-06-12
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 net_lover 的回复:]
<EditItemTemplate>
<asp:HiddenField ID="HiddenField1" runat="server" />
<asp:DropDownList ID="DropDownList1" runat="server"></asp:DropDownList>
<asp:DropDownList ID="DropDownList2" runat="ser……
[/Quote]

你这表示一个单元格里两个Dropdownlist 并且表头怎么办?

你这相当于两个字段对应的表头都是HeaderText="终端编号"
wuyq11 2010-06-12
  • 打赏
  • 举报
回复
<ItemTemplate>
<asp:DropDownList ID="ddlSort" runat="server" Width="98%">
</asp:DropDownList>
<asp:HiddenField ID="Hd_Sort" runat="server" Value='<%# Eval("BalSort")%>' />
</ItemTemplate>
protected void gv_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowIndex != -1)
{ if (e.Row.RowState == DataControlRowState.Edit || e.Row.RowState == (DataControlRowState.Alternate | DataControlRowState.Edit))
{
((DropDownList)e.Row.FindControl("ddlSort")).SelectedValue = ((HiddenField)e.Row.FindControl("Hd_Sort")).Value;
}
}
}

protected void gv_RowEditing(object sender, GridViewEditEventArgs e)
{
gv.EditIndex = e.NewEditIndex;
string strSort = ((DropDownList)gv.Rows[e.NewEditIndex].FindControl("ddlSort")).SelectedValue.Trim();


gv.EditIndex = -1;
BindData();
}
xxfxiazai 2010-06-12
  • 打赏
  • 举报
回复
直接再拖一个到EditItemTemplate中不行?
你再拖一个,运行试试。哎。。

62,046

社区成员

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

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

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

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