DataGrid的EditCommandColumn的问题

chenlm 2003-10-23 04:47:26
我想在EditCommandColumn里面加一个 DropDownList
其中的项的Value、Text由另外一个表里面的 ID,strTxt字段动态决定

<asp:DropDownList id="Dropdownlist2" runat="server" Width="112px">
请问这儿我该怎么做呢?
</asp:DropDownList>
...全文
29 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
haoliqi 2003-10-23
  • 打赏
  • 举报
回复
513说得对
wolve 2003-10-23
  • 打赏
  • 举报
回复
如有a,b两表,a的表col1引用b的col1.
在dg中要用dropdownlist.
先看看aspx文件中的写法:
<asp:TemplateColumn HeaderText="对应的员工">
<ItemTemplate>
<asp:HyperLink runat="server" Target="_blank" NavigateUrl='<%# DataBinder.Eval(Container.DataItem,"ManId","ManView.aspx?ManId={0}")%>' Text=' <%# DataBinder.Eval(Container.DataItem,"ManName","{0}")%>'/>
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList runat="server"></asp:DropDownList>
</EditItemTemplate>
</asp:TemplateColumn>
当编辑时,我们作如下处理:
private void dgUser_PreRender(object sender, System.EventArgs e)
{
if(this.dgUser.EditItemIndex == -1)
{
return;
}

Control ctl=this.dgUser.Items[this.dgUser.EditItemIndex].Cells[2];
DropDownList dl;

if(ctl.HasControls() && ctl.Controls[1] is DropDownList)
{
dl=(DropDownList)ctl.Controls[1];
ListItem[] items=new ListItem[this.baseItems.Items.Count];
this.baseItems.Items.CopyTo(items,0);
dl.Items.AddRange(items);
Dongdong.Framework.DropDownListHelper.SetSelectedItem(dl,currentItemValue);
}
说明一下,这里的this.baseItems也是DropDownList,和dg中的一样,所以这里就不在访问数据库了。如果没有,你可以访问数据后,通过databind来添加items。
最后这个DropDownListHelper.SetSelectedItem(dl,currentItemValue)是个静态的方法,用来设置DropDownList的选中的组的
carper 2003-10-23
  • 打赏
  • 举报
回复
处理 DataGrid 的 ItemDataBound 事件,看下面一个范例代码:
private void dg_DetailOrder_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
// È·¶¨ÊÇÊý¾ÝÐжø·ÇÒ³Ê×»òҳβ
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
int DetailOrderID = (int)DataBinder.Eval(e.Item.DataItem, "DetailOrderID");
int ProductNum = (int)DataBinder.Eval(e.Item.DataItem, "ProductNum");

string strtempProductNumHtml = @"  <select name=""ddl_ProductNum" + DetailOrderID.ToString() + @""" class=""TextBox"">";
for(int i = 0;i <= ProductNum; i++)
{
if (ProductNum == i)
{
strtempProductNumHtml += @"<option value=""" + i.ToString() + @""" selected>"+i.ToString()+"</option>";
}
else
{
strtempProductNumHtml += @"<option value=""" + i.ToString() + @""">"+i.ToString()+"</option>";
}
}
strtempProductNumHtml += @"</select>";

e.Item.Cells[6].Text = strtempProductNumHtml;
}
}
513 2003-10-23
  • 打赏
  • 举报
回复
<asp:DropDownList id=Dropdownlist2 runat="server" Width="74px" DataSource="<%# dsYSubject %>" DataValueField="vSubjectNo" DataTextField="vSubjectName">
</asp:DropDownList>


1。准被好DateSet ds 根据id,strTxt
2.设置Dropdownlist2 的dateSource=ds,DataValueField,DataTextField
3.DataGrid.Bind()

62,041

社区成员

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

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

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

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