首页 ┆ 网站地图 ┆ 在线留言 ┆ 游戏资讯 ┆ 资源下载 ┆ 端午节祝福 ┆ 迅雷在线影视 ┆淘宝手机在线充值 ┆淘宝游戏点卡充值 
设为首页
加入收藏
联系我们
高级搜索
您当前的位置: 主页>NET专区>ASP.NET>DataGrid中DropDownList触发SelectedIndexChanged事件并修改DataGrid行值
DataGrid中DropDownList触发SelectedIndexChanged事件并修改DataGrid行值
来源: 发布时间:2008-02-19 发布人: 浏览: 人次   字体: [ ]  
今天遇到了问题,就是在 DataGrid中DropDownList触发SelectedIndexChanged事件 ,并通过修改DropDownList的值,把其它对应的值也读取绑定DataGrid相应的行,
前台模版列,AutoPostBack="True" 不要忘了
<asp:TemplateColumn HeaderText="上级提供商">
<ItemStyle HorizontalAlign="Center" Width="50px"></ItemStyle>
<ItemTemplate>
<asp:DropDownList ID="DDL_UP" runat=server AutoPostBack="True"
OnSelectedIndexChanged
="DDL_UP_SelectedIndexChanged" ></asp:DropDownList>
</ItemTemplate>
</asp:TemplateColumn>
后台
   protected void DDL_UP_SelectedIndexChanged(object sender, EventArgs e)
    
{
        System.Web.UI.WebControls.DataGridItem item 
= (DataGridItem)((Control)sender).Parent.Parent;
//
获取当前Item,是两个
Parent,一个会出错的
        DropDownList list;
        list 
= (DropDownList)item.FindControl("DDL_UP");
        
string str = "select  *  from  aa  where Product_TypeName='" + item.Cells[15].Text.Trim() + "'";
//已经省略了sql语句
        SqlDataReader dr
= Sg.SQLServerDAL.DbHelperSQL.ExecuteReader(str);
      
if (dr.Read())
      
{
          ((TextBox)item.Cells[
4].Controls[0]).Text = dr["Product_Name"].ToString();//读取修改相应列的值
          ((TextBox)item.Cells[
4].Controls[0]).Enabled = false;
          
if (dr["Product_Price"].ToString() != "")
          
{
              ((TextBox)item.Cells[
8].Controls[0]).Text = Convert.ToDecimal(dr["Product_Price"]).ToString("0");
//把值赋给要修改列的文本框
          }

          
if (dr["Product_Cost"].ToString() != "")
          
{

              ((TextBox)item.Cells[
10].Controls[0]).Text = Convert.ToDecimal(dr["Product_Cost"]).ToString("0");
          }

          
else
          
{
              ((TextBox)item.Cells[
10].Controls[0]).Text = "0";
          }

      }

      dr.Close();
       
    }
原先参考以下方法没有成功:
DataGrid中DropDownList OnSelectedIndexChanged事件触发- -
                                       



手头有个程序,其中设计到用DataGrid对数据进行多种操作处理;
for example:Insert,Edit,Del,Cancel and so on.考虑到用按钮列的话需要太多按钮,因此想用DropDownList来实现按钮的各项功能.这样就要用到DropDownList的OnSelectedIndexChanged事件的触发.

开始我在html里的DropDownList添加了OnSelectedIndexChanged
="changed",然后在后台写changed()的代码,但是这样的话将无法获取当前的Item信息.在客户端向服务器端传送操作的参数,然后服务器对此进行处理,这样显然不太现实.后来想到了ItemDataBound事件;在msdn里面,是这么说的:

事件数据事件处理程序接收一个 DataGridItemEventArgs 类型的参数,它包含与此事件相关的数据。下列 DataGridItemEventArgs 属性提供特定于此事件的信息。

属性 说明 
Item 获取引发该事件时 DataGrid 控件中的被引用项。 

备注当项被数据绑定到 DataGrid 控件后,将引发 ItemDataBound 事件。此事件为您提供了在客户端显示数据项之前访问该数据项的最后机会。当引发此事件后,该数据项将被设为空,并且不再可用。

也就是说,在DataGrid中添加的服务器控件,需要写触发事件的话,可以在DataGrid.ItemDataBound中为事件添加委托.

DataGrid中DropDownList模板列的OnSelectedIndexChanged事件触发实现如下:

private void testDg_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
  
{
   
if(e.Item.FindControl("MyDropDownList")!=null)
    ((DropDownList)e.Item.FindControl(
"MyDropDownList")).SelectedIndexChanged+=new System.EventHandler(this.Changed);
  }



#region 测试dropdownlist,selectedindexchanged
  
protected void Changed(object sender, System.EventArgs e)
  
{
   System.Web.UI.WebControls.DataGridItem item
=(DataGridItem)((Control)sender).Parent.Parent;//获取当前Item
   
   DropDownList list;
   list
=(DropDownList)item.FindControl("MyDropDownList");
   Response.Write(list.SelectedItem.Text);
  }

  
#endregion



相 关 文 章   发布商链接
·DataFormatString格式化字符串的总结...
·ASP.NET图片验证程序代码
·textbox输入时从右边写起,而不是从左...
·asp.net中DataBinder.Eval的用法总结
·如何利用.Net中操作IIS?
·Net程序如何防止被注入(整站通用)
·带Checkbox的TreeView代码实例
·.net实现在IE耗时操作中加入进度条或...
·在asp.net中保持Session的有效期
·asp.net(c#)生成验证码代码,点击可刷...
 §最新评论:(评论内容只代表网友观点,与本站立场无关!)
网名: 验证码:  【所有评论】【↑返回顶部
评 分: 12 345
评论内容:(不能超过500字,请自觉遵守互联网相关政策法规。[按 Ctrl+Enter 可直接提交]
注意:请勿在本站发布政治话题、色情及违反法律的内容。
IT知道网 声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。
推 荐 文 章
·实例讲解ASP.NET实现加密Cook...
·如何实现在DataList控件中的D...
·实例讲解asp.net生成高质量缩
·asp.net适用于IE或FireFox的...
·举例详解C#代码与javaScript...
·asp.net无刷新上传文件
·在Ie中保存图片时出现"800700...
·asp.net文件上传大小限制的控
·asp.net动态生成txt文本文件...
·asp.net实现将Excel文件导入...
·实现多列,带图片的DropDownLi...
·javascript实现TreeView 控件
·ASP.NET配置Word的操作权限
·让FileUpload控件在IE和FireF...
·ASP.NET实现Office文档的分类
热 门 文 章
·asp.net(C#)上传下载及文件管...
·图解asp.net如何用excel做报...
·asp.net无刷新上传文件
·Asp.Net防止刷新重复提交数据...
·asp.net实现将Excel文件导入...
·ASP.NET取得物理路径和虚拟路...
·asp.net中Web.Config配置文件...
·asp.net(c#)生成验证码代码,...
·asp.net页面回传与js调用服务...
·asp.net中DataBinder.Eval的...
·asp.net(C#版)实现登录验证码...
·asp.net可输入的下拉框复合控...
·ASP.net 实现批量数据更新或...
·asp.net中常见的几种日历控件...
·示例小解LinkButton组件中的C...
网站首页 - 关于本站 - 加入收藏 - 网站地图 - 友情连接 - 在线留言 - 联系我们 - 返回顶部
Copyright © 2007 IT知道网.[冀ICP备07026896号]. All Rights Reserved .