在GridView 中嵌套了DropDownList
而DropDownList是AutoPostBack的,在选择这个下拉框的时候,怎么样才能得到是这一行的下拉框发生了变化,变量得到下拉框选的值.
而DropDownList是AutoPostBack的,在选择这个下拉框的时候,怎么样才能得到是这一行的下拉框发生了变化,变量得到下拉框选的值.
解决方案 »
- asp.net里动态加载的textbox如何设置multline属性
- 类似QQ邮箱的多附件上传删除
- 根据身份证自动判断性别~~~~~~~~~~~~~~~~~,求高人帮忙啊
- 不好描述的一个问题
- onmouseover/out与div的问题
- 奇怪 我的gridview怎么点击 删除/编辑/更新 改变不了数据呢?
- 超级郁闷白吃问题!大家都来看看!
- !关于RequiredFieldValidator的问题
- 未将对象引用设置到对象的实例,高手请进
- 为什么我看到的大部分书上都是把函数之间写在aspx中的,很少有用codebehind,难道。。。?
- 各位同行,请问这种一次重定向两页面如何解决?
- 如何提取图片信息
---------
通过此下拉框的Parent属性可获得其父控件,也就是所属的GridviewRow。注意其类型是control,需要显式类型转换在同一行里还有一个隐藏字段
----
获得了所在的GridviewRow,便可以用findcontrol方法根据控件ID获得其他子控件,返回类型是control,也要类型转换
{
if(row选中)
{
DropDownList ddl=(DropDownList)row.FindControl("DropDownList1");
string value=ddl.SelectedValue;
}
}隐藏值也类似
string hfStr = ((HiddenField)e.Row.FindControl("HiddenField1")).Value;//隐藏的值
{
DropDownListcbx = (DropDownList)sender ;
//取得了 对应 GridViewRow 的方法: ((GridViewRow)(cbx.Parent.Parent));
}
{
DropDownList ddl= (DropDownList)sender ;
//取得了 对应 GridViewRow 的方法: (GridViewRow)(ddl.Parent.Parent);
}
----------------------
那是通过什么事件来获得gridviewrow呢,是下拉框的DropDownList1_SelectedIndexChanged事件吗?
必须自己实现该事件的冒泡
{
DropDownList ddlTest = (DropDownList)sender;
GridViewRow gvr = (GridViewRow)ddlTest.Parent.Parent;
Label Label2 = (Label)gvr.FindControl("Label2");
txtAuthor.Text = Label2.Text;
} <asp:TemplateField>
<ItemTemplate>
<asp:Label ID="Label2" runat="server"><%#Convert.ToDateTime(DataBinder.Eval(Container.DataItem, "CreatedDate")).ToString("yyyy-MM-dd")%></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:DropDownList ID="ddlTest" AutoPostBack="true" OnSelectedIndexChanged="ddlTest_SelectedIndexChanged" runat="server">
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
类似这种写法就可以了
void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
DropDownList d = (DropDownList)e.Row.FindControl("DropDownList1");
d.SelectedIndexChanged += new EventHandler(d_SelectedIndexChanged);
} void d_SelectedIndexChanged(object sender, EventArgs e)
{
DropDownList d = (DropDownList)sender;
string v= d.SelectedValue;
//此处做相关处理
}