关于DATAGRID的问题,急!!!

eagle_hb 2003-08-21 05:41:18
<asp:TemplateColumn HeaderText="俱乐部"> <ItemTemplate> <asp:Label ID="jlb" Runat="server" Text='<%# DataBinder.Eval(Container.DataItem,"FootballTeam")%>'> </asp:Label>
</ItemTemplate> <EditItemTemplate> <asp:DropDownList Runat="server" ID="Party"></asp:DropDownList> </EditItemTemplate> </asp:TemplateColumn>

通过private void DataGrid1_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
//如何在这里对<EditItemTemplate>中<asp:DropDownList Runat="server" ID="Party">进行访问!!我想在这里对DropDownList动态的添加项!
}
...全文
49 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenqianliang 2003-08-23
  • 打赏
  • 举报
回复
建议贴主把解决的方法贴出来,大家学习学习嘛
eagle_hb 2003-08-23
  • 打赏
  • 举报
回复
看来只有结帖子了,为了不再失去信誉!!!
eagle_hb 2003-08-22
  • 打赏
  • 举报
回复
我解决了,不过上面的兄弟没有一个回答正确的。
krlin100 2003-08-21
  • 打赏
  • 举报
回复
在itemcreat事件中写
bobjeey 2003-08-21
  • 打赏
  • 举报
回复
设置一个 arraylist 对象,先增加一个你需要的对象内容如 test,然后从数据库中读出数据并 add 进去这个arraylist对象中,最后再作为数据源给 dropdownlist

public class column
{
string x;
string y;

public string X { get { return x;} set { x = value;}}
public string Y { get { return y;} set { y = value;}}
}

public arraylist GetData()
{
arraylist cols = new arraylist();
column col = new column();
col.X = "test";
col.Y = "test";
cols.add(col)

sqldatareader dr;
string sqltext("select * from table");
以下创建读取数据并将数据读取到 dr
....
while(dr.reader())
{
column col = new column();
col.X = dr["column1"].tostring();
col.Y = dr["column2"].tostring();
cols.add(col);
}

}


然后在你的dropdownlist需要帮定的地方,调用这个GetData就可以了

dropdownlist1.datasource = GetData();
dropdownlist1.DataBind();


以上程序并没有测试,你只要遵循这个方法,保证你成功。
guoyan19811021 2003-08-21
  • 打赏
  • 举报
回复
Private Sub DataGrid1_EditCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.EditCommand
DataGrid1.EditItemIndex = e.Item.ItemIndex
Dim data As DataBaseInfo
Dim cnn As OleDb.OleDbConnection = Data.Connection
Dim da As New OleDb.OleDbDataAdapter("select * from log", cnn)
Dim ds As New DataSet()
da.Fill(ds, "employees")
DataGrid1.DataSource = ds
DataGrid1.DataBind() '一定冼重新傍定datagrid

Dim i As Integer = 0
Dim c As Integer = DataGrid1.Items.Count
For i = 0 To c - 1
Dim d As DropDownList = DataGrid1.Items(i).FindControl("DropDownList1")
If Not d Is Nothing Then
d.Items.Add(New ListItem("text", "value"))
End If
Next

End Sub
vivaldi16 2003-08-21
  • 打赏
  • 举报
回复
需要datagrid编辑的时候修改模板列的编辑界面的dropdownlist嘛,那就写在响应修改datagrid事件中吧

private void DataGrid1_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
//借用qiuji(忆秋季) 的代码
DropDownList mylist=(DropDownList)e.Item.Cells[3].Controls[0];
//到底是第一个还是2、3个control,你调试看看就知道了
}




eagle_hb 2003-08-21
  • 打赏
  • 举报
回复
难道就没有好的方法了吗?
eagle_hb 2003-08-21
  • 打赏
  • 举报
回复
强烈UPP!!!!
eagle_hb 2003-08-21
  • 打赏
  • 举报
回复
楼上这位和刚才那位是一样的。
通过DataGrid1_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
方法后,访问的是<ItemTeplate>中的类内容,而没有到<EditTeplate>去。
qiuji 2003-08-21
  • 打赏
  • 举报
回复
我的想法,不知能否实现,你试试:

DropDownList mylist=(DropDownList)e.Item.Cells[3].Controls[0];//其中的3和0根据你的实际情况写

然后对mylist进行数据绑定等操作。
eagle_hb 2003-08-21
  • 打赏
  • 举报
回复
FindControl("Party")是找不到的。只能找到<ItemTemplate> <asp:Label ID="jlb" Runat="server" Text='<%# DataBinder.Eval(Container.DataItem,"FootballTeam")%>'> </asp:Label>
</ItemTemplate>
中的Label ID
vbdelphi 2003-08-21
  • 打赏
  • 举报
回复
....dgDEMO_ItemBound(...)
{
...
DropDownList ddlst=(DropDownList)e.Item.FindControl("Party")
ddlst.Items.Add(new ListItem("Name","Value"))
...
}
eagle_hb 2003-08-21
  • 打赏
  • 举报
回复
楼上的方法是行不通的。
scWhisper 2003-08-21
  • 打赏
  • 举报
回复
ddlParty.Items.Add(new ListItem("text","value"));
eagle_hb 2003-08-21
  • 打赏
  • 举报
回复
UP一下!!!

62,041

社区成员

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

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

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

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