就一个Gridview问题全论坛的高手都解决不了???我就不信,第三次发同一个问题。

fengaiyue1314 2010-06-12 10:47:31
大家看清我的问题别再回答我,别不看题目就回复。!!



<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>

看这段代码在gridview里面能这样用不? 我运行啦不会报错!·

我的目的:

看这<asp:TemplateField HeaderText="终端编号">
<ItemTemplate><%# Eval("DCT_Id") %></ItemTemplate>

------
和这

<asp:TemplateField HeaderText="用电方案">
<ItemTemplate><%#Eval("UP_Name")%></ItemTemplate>

就是为了,在gridview显示!当然可以直接绑,后面还有目的。

我想实现,当我点编辑的时候变成dropdownlist。

当然如果是一个,我会绑定,一个dropdownlist+HiddenFiel刚好。后台我会绑定。因为我正在项目前面只要是绑定一个的都没问题。

现在这个gridview要多个dropdownlist .现在我只试用两个看看,如果这两个成功的话,绑定100个也行对吧。

对于高手来说,这样说他应该明白的我目的啦吧。

我这个问题第三次发现在还没人帮我。

如果我这样不行,你只要知道我的目的,把我上面的改下给我我就知道行不。。谢谢,大家加油。
...全文
113 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
SamuDra 2010-06-13
  • 打赏
  • 举报
回复
额..还能接到分不?帮顶...= =
fengaiyue1314 2010-06-13
  • 打赏
  • 举报
回复
谢谢各位参与者。

我和思路没问题,前台没问题。我就是在GridView1_RowDataBound,里面手误写啦个bing().

结贴。

现在成熟代码如下,用于多个dropdownlist.

<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>
<asp:BoundField DataField="A_Id" HeaderText="户编" />
<asp:BoundField DataField="Cus_Name" HeaderText="户名" />
<asp:BoundField DataField="Cus_Address" HeaderText="地址" />
<asp:BoundField DataField="Cus_Tel" HeaderText="电话" />
<asp:BoundField DataField="A_Type" HeaderText="表类型" />
<asp:BoundField DataField="A_PropertyNum" HeaderText="资产编号" />
<asp:BoundField DataField="A_PhaseSequence" HeaderText="相序" />
<asp:BoundField DataField="A_SingleOrDouble" HeaderText="费率类型" />
<asp:BoundField DataField="A_CommAddress" HeaderText="通信地址" />
<asp:BoundField DataField="A_BarCode" HeaderText="条形码" />
<asp:BoundField DataField="A_TP" HeaderText="总/分" />
<asp:CheckBoxField DataField="A_State" HeaderText="停用标志" Text="停用" />
<asp:CommandField ButtonType="Button" ShowEditButton="True" />
<asp:CommandField ButtonType="Button" ShowDeleteButton="True" />
</Columns>
</asp:GridView>

后台我主要结解决这两个dropdownlist.

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 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();
}
}

如果你们要更多的dropdownlist .你像我上面写多个
<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>

在后台的GridView1_RowDataBound里面一一绑定就行啦。

谢谢大家。
  • 打赏
  • 举报
回复
继续学习
mngzilin 2010-06-12
  • 打赏
  • 举报
回复
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
OnRowDataBound="GridView1_RowDataBound"
OnRowEditing="GridView1_RowEditing" >
<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>
<asp:CommandField ShowEditButton="True" />
</Columns>
</asp:GridView>


protected void Page_Load(object sender, EventArgs e)
{
dt1 = new DataTable();
dt1.Columns.Add("DCT_Id");
dt1.Columns.Add("UP_Name");
dt1.Rows.Add("1","name1");
dt1.Rows.Add("2", "name2");
dt1.Rows.Add("3", "name3");

dt2 = new DataTable();
dt2.Columns.Add("DCT_Id");
dt2.Columns.Add("DCT_Name");
dt2.Rows.Add("1", "dctname1");
dt2.Rows.Add("2", "dctname2");
dt2.Rows.Add("3", "dctname3");

dt3 = new DataTable();
dt3.Columns.Add("UP_Id");
dt3.Columns.Add("UP_Name");
dt3.Rows.Add("1", "upname1");
dt3.Rows.Add("2", "upname2");
dt3.Rows.Add("3", "upname3");
if(!IsPostBack)
Bing();
}
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
Bing();
}
DataTable dt1,dt2,dt3;
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 = dt2;
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 = dt3;
lst2.DataValueField = "UP_Id";
lst2.DataTextField = "UP_Name";
lst2.DataBind();
lst2.SelectedValue = hd2.Value;
//Bing();不知道你在这里加这句有什么意义?我反正帮你去掉了
}
}
void Bing()
{
GridView1.DataSource = dt1;
GridView1.DataBind();
}
wuyq11 2010-06-12
  • 打赏
  • 举报
回复
结合我在前几个帖子的代码就可以了
protected void gv_RowEditing(object sender, GridViewEditEventArgs e)
{
gv.EditIndex = e.NewEditIndex;
BindData();
}
protected void gv_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
gv.EditIndex = e.RowIndex;
int id = int.Parse(gv.DataKeys[e.RowIndex].Value.ToString());

gv.EditIndex = -1;
BindData();
}
hitlcyu19 2010-06-12
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wuyq11 的回复:]

使用过可以这样使用
onrowcommand="gv_RowCommand"
onrowdatabound="gv_RowDataBound" onrowdeleting="gv_RowDeleting"
onrowediting="gv_RowEditing" onrowupdating="……
[/Quote]
这么些没有问题 点击编辑的时候使用的是EditItem...
fengaiyue1314 2010-06-12
  • 打赏
  • 举报
回复
这是我的后台代码。

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 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=引用 3 楼 wuyq11 的回复:]
使用过可以这样使用
onrowcommand="gv_RowCommand"
onrowdatabound="gv_RowDataBound" onrowdeleting="gv_RowDeleting"
onrowediting="gv_RowEditing" onrowupdating="gv_RowUpdating"
<asp:TemplateField HeaderT……
[/Quote]

你这样写可能还有用,明天 我看看再说,谢谢……
fengaiyue1314 2010-06-12
  • 打赏
  • 举报
回复
我第一次发时40分,第二次100,
现在我再想弄100分出来可是前几次没结贴弄不了那么多。汗。哥也是刚玩这个论坛,如果感觉不行我不会在这里玩啦
wuyq11 2010-06-12
  • 打赏
  • 举报
回复
使用过可以这样使用
onrowcommand="gv_RowCommand"
onrowdatabound="gv_RowDataBound" onrowdeleting="gv_RowDeleting"
onrowediting="gv_RowEditing" onrowupdating="gv_RowUpdating"
<asp:TemplateField HeaderText="操作" ItemStyle-HorizontalAlign="Center" ShowHeader="False">
<HeaderStyle Width="20%"></HeaderStyle>
<EditItemTemplate>
<asp:LinkButton ID="LinkButton5" runat="server" CausesValidation="True" CommandName="update">保存</asp:LinkButton>
<asp:LinkButton ID="LinkButton4" runat="server" CausesValidation="False" CommandName="cancel">取消</asp:LinkButton>
</EditItemTemplate>
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CommandName="edit" CausesValidation="false" OnClientClick="return confirm('确认要编辑吗?');">编辑</asp:LinkButton>
<asp:LinkButton ID="LinkButton2" runat="server" CommandName="delete" CausesValidation="False" OnClientClick="return confirm('确认要删除吗?');">删除</asp:LinkButton>
<asp:LinkButton ID="LinkButton3" runat="server" CommandName="Select" CausesValidation="False" Visible="false" >选取</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
fengaiyue1314 2010-06-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wuyq11 的回复:]
一个EditItemTemplate中dropdownlist
编辑时就显示dropdownlist
不行吗?
[/Quote]

我这样运行不会报错。当我点编辑没反应。这也是我头痛的事,我一直在想gridviewi不能这样用。

可又没人告诉我这样用不行。后台我会绑定。
wuyq11 2010-06-12
  • 打赏
  • 举报
回复
一个EditItemTemplate中dropdownlist
编辑时就显示dropdownlist
不行吗?

62,039

社区成员

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

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

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

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