求教,datagrid里一模板列内含dropdownlist

wuyu1980 2003-07-24 09:36:23
AutoPost的,我怎么在服务器段捕捉到选择变化的dropdownlist?
如何触发相关的SelectChanged事件?
谢谢
...全文
45 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
saucer 2003-07-24
  • 打赏
  • 举报
回复
void DropDownList1_SelectedIndexChanged(Object sender, EventArgs e)
{
DropDownList ddl = (DropDownList)sender;
DataGridItem dgi = (DataGridItem)ddl.Parent.Parent;
Response.Write(dgi.ItemIndex);
}
wuyu1980 2003-07-24
  • 打赏
  • 举报
回复
谢谢xrll,但是怎么知道当前触发事件的dropdownlist是第几行的呢?
以前做command的时候,直接是e.什么什么.index
现在如何知道呢?
问完结帖
xrll 2003-07-24
  • 打赏
  • 举报
回复
在datagrid itemdatabound事件中遍历dropdownlist控件,然后加入
DropList.SelectedIndexChanged +=
new EventHandler(OnSelectedIndexChangedMethod);
在OnSelectedIndexChangedMethod事件中编写相应代码
ruyedian 2003-07-24
  • 打赏
  • 举报
回复
Sub DropDownList1_SelectedIndexChanged(sender As Object, E As System.EventArgs)
textvalue = sender.selecteditem.value
texttext = sender.selecteditem.Text
End Sub

<asp:TemplateColumn HeaderText="证照种类">
<ItemTemplate>
<asp:DropDownList ID="Qualification" Runat="server" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged">
<asp:ListItem value="0" Text=""/>
<asp:ListItem value="1" Text="初级工"/>
<asp:ListItem value="2" Text="中级工"/>
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateColumn>
saucer 2003-07-24
  • 打赏
  • 举报
回复
try the following


<%@ Page Language="C#" %>
<%@ import Namespace="System.Data" %>
<%@ import Namespace="System.Data.SqlClient" %>
<script runat="server">
DataSet ds;

void Page_Load(Object sender, EventArgs e)
{

if (!IsPostBack)
{

SqlConnection cnn = new SqlConnection("server=(local);database=pubs; uid=sa; pwd=;");
SqlDataAdapter da = new SqlDataAdapter("select * from authors",cnn);

ds = new DataSet();
da.Fill(ds,"authors");

DataGrid1.DataSource = ds.Tables["authors"].DefaultView;
DataGrid1.DataBind();
}

}

void DropDownList1_SelectedIndexChanged(Object sender, EventArgs e)
{
DropDownList ddl = (DropDownList)sender;
Response.Write(ddl.SelectedItem.Text);
}

void Item_Bound(Object sender, DataGridItemEventArgs e)
{


if((e.Item.ItemType == ListItemType.Item) ||
(e.Item.ItemType == ListItemType.AlternatingItem))
{
DropDownList ddl = (DropDownList)e.Item.FindControl("DropDownList1");
ddl.DataSource = ds.Tables["authors"].DefaultView;
ddl.DataTextField = "au_lname";
ddl.DataValueField = "au_id";
ddl.DataBind();
ddl.Items.FindByValue(DataBinder.Eval(e.Item.DataItem,"au_id").ToString()).Selected = true;
}

}

</script>
<html>
<head>
</head>
<body>
<form runat="server">
<asp:DataGrid id="DataGrid1" runat="server" OnItemDataBound="Item_Bound">
<Columns>
<asp:TemplateColumn HeaderText="DropDownList">
<ItemTemplate>
<asp:DropDownList id="DropDownList1"
OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged"
AutoPostBack="True"
runat="server" D/>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
</form>
</body>
</html>
xrll 2003-07-24
  • 打赏
  • 举报
回复
如果要触发 OnSelectedIndexChanged必须将AutoPostBack="True"
在OnSelectedIndexChangedMethod事件中编写相应代码,无需按钮点击事件:
AutoPostBack="True"
OnSelectedIndexChanged="OnSelectedIndexChangedMethod"
xrll 2003-07-24
  • 打赏
  • 举报
回复
http://aspalliance.com/das/dgcombo.aspx
panyee 2003-07-24
  • 打赏
  • 举报
回复
dropdownlist在改变选项后并不马上执行selectchanged事件, 而要等一个按钮点击事件后才去执行它

62,244

社区成员

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

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

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

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