我有一个DATAGRID,用来做友情连接,其中有一个模板列,模板列中有一个DropDownList,
当数据绑定后,页面显示4行dropdownlist,每个dropdownlist
我现在要分别对每个dropdownlist选择,
可是我每次选择dropdownlist的响应的都是第一行的dropdownlist,不知道为何
下面是部分代码//每次都是同一个dropdownlist响应
private void DropDownListLink_SelectedIndexChanged(object sender, System.EventArgs e)
{

DropDownList dropList=(DropDownList)sender;
CFriendLinkManage manage=new CFriendLinkManage();
CFriendLink link=manage.GetLink(int.Parse(dropList.SelectedItem.Value)); //得到一个友情连接
                         
if(link!=null)
{
Response.Redirect(link.Url); //友情连接的url地址

}

} private void gridFriend_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem)
{
DropDownList dropList=(DropDownList) e.Item.FindControl("DropDownListLink");
if(dropList!=null)
{

dropList.SelectedIndexChanged += new System.EventHandler(this.DropDownListLink_SelectedIndexChanged);
}
}

}

解决方案 »

  1.   

    你这个问题在于:你有多个下拉框,可你却只有一个事件.
    试问,如果你在普通页面中放10个下拉框,它们能共用一个事件吗?显然不行,每一个下拉框都有自己的事件比如:
    DropDownListLink1_SelectedIndexChanged(object sender, System.EventArgs e)
    DropDownListLink2_SelectedIndexChanged(object sender, System.EventArgs e)
    DropDownListLink3_SelectedIndexChanged(object sender, System.EventArgs e)
    .......................
    所以你这个出题了.而且,下拉框放在DATAGRID中,它的ID与客户端的ID会产生变化.
    所以还是建议用客户端事件来处理,我在你的另一个贴子里面已经写了处理意见了.
      

  2.   

    能共用一个事件,但放在DATAGRID中的下拉框是没有事件的.
      

  3.   

    建议你不要这样做.
    你可以在客户端用脚本实现.
    在datagrid绑定之后,循环对各个下拉框绑定它们的值,其中text部分显示网站名称,value部分显示此网站的连接地址(如http://xxx.xx.xx),同时,在每个下拉框上添加事件
    DropDownList.Attributes.Add("onchange","window.open(this.value,'','');");
      

  4.   

    放在DATAGRID中的下拉框是没有事件的??是有事件的!
    不过你需要自己用个循环来增加事件委托,而且。你要说bug也可以,
    在VS里自己增加的这些(在“窗体设计器生成的代码,不要用”里面)经常被VS自己删除掉了。所以建议楼主换一种实现吧,或者把这件事留在最后做(那样就不怕丢失了。)
      

  5.   

    关注,前几天我也试过了,在DATAGRID中的控件无法增加事件,
    syeerzy(快乐永远) 能详细说一下吗