从gridview的下拉列表中获取所选项目的值 [英] get the value of the selected item form a dropdownlist in gridview
本文介绍了从gridview的下拉列表中获取所选项目的值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
嗨
谁能告诉我如何在onrowcommand事件中在gridview中获取下拉列表的选定值
首先,您需要设置CommandArgument = row索引,然后在onrowcommand事件中使用此代码.
.aspx代码:
< asp:GridView ID =" ="span> runat =" 服务器" AutoGenerateColumns 错误" CellPadding ="
span> ForeColor #333333" GridLines =" ShowFooter =" OnRowCommand =" >
< RowStyle =" #EFF3FB" / < 列 >
< asp:TemplateField >
< ItemTemplate >
< asp:ImageButton ID =" runat 服务器" CommandName RSelect" CommandArgument " )%>'
span> ImageUrl =" / >
< /ItemTemplate >
< /asp:TemplateField >
< asp:TemplateField >
< ItemTemplate >
< asp:DropDownList ID =" runat 服务器" < /asp:DropDownList >
< /ItemTemplate >
< /asp:TemplateField >
< /列 >
< FooterStyle =" #507CD1" 字体粗体 True" ForeColor =" 白色" / >
< PagerStyle =" #2461BF" ForeColor 白色" HorizontalAlign =" 居中" / < SelectedRowStyle =" #D1DDF1" 字体粗体 True" ForeColor =" #333333" / >
< HeaderStyle =" #507CD1" 字体粗体 True" ForeColor =" 白色" / >
< EditRowStyle =" #2461BF" / < AlternatingRowStyle =" 白色" / < /asp:GridView >
.cs代码:
class dtgData
{
int _RIndex;
公共 int RIndex
{
获取 {返回 _RIndex; }
set {_RIndex = value ; }
}
}
受保护的 无效 Page_Load(对象发件人,EventArgs e)
{
如果(!IsPostBack)
{
List< dtgData> list = 新 List< dtgData>();
dtgData ob = 新 dtgData();
for ( int i = 0 ; i < = 4 ; i ++)
{
ob = 新 dtgData();
ob.RIndex = i;
list.Add(ob);
}
dtgView.DataSource =列表;
dtgView.DataBind();
}
}
受保护的 无效 dtgView_RowCommand(对象发件人,GridViewCommandEventArgs e)
{
// 需要设置CommandArgument =行索引
int rowCount = 0 ;
foreach (GridViewRow行 in dtgView.Rows中)
{
如果(行计数== Convert.ToInt16(e.CommandArgument))
{
字符串 str =((DropDownList)row.FindControl(" )).SelectedValue.ToString();
}
rowCount ++;
}
}
在这里,
dtgView = GridView
ddl = DropDownList在您的gridview内
试试这个...
Hi
Can anyone tell me how to get the selected value of a dropdownlist in gridview on the onrowcommand event
Thanks
解决方案
at 1st you need to set CommandArgument=row index, then use this code in onrowcommand event.
.aspx code:
<asp:GridView ID="dtgView" runat="server" AutoGenerateColumns="False" CellPadding="4" ForeColor="#333333" GridLines="None" ShowFooter="true" OnRowCommand="dtgView_RowCommand"> <RowStyle BackColor="#EFF3FB" /> <Columns> <asp:TemplateField> <ItemTemplate> <asp:ImageButton ID="btnSelect" runat="server" CommandName="RSelect" CommandArgument='<%#Eval("RIndex") %>' ImageUrl="~/Icon/page_edit.gif" /> </ItemTemplate> </asp:TemplateField> <asp:TemplateField> <ItemTemplate> <asp:DropDownList ID="ddl" runat="server"> </asp:DropDownList> </ItemTemplate> </asp:TemplateField> </Columns> <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" /> <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" /> <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" /> <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" /> <EditRowStyle BackColor="#2461BF" /> <AlternatingRowStyle BackColor="White" /> </asp:GridView>
.cs code:
class dtgData { int _RIndex; public int RIndex { get { return _RIndex; } set { _RIndex = value; } } } protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { List<dtgData> list = new List<dtgData>(); dtgData ob = new dtgData(); for (int i = 0; i <= 4; i++) { ob = new dtgData(); ob.RIndex = i; list.Add(ob); } dtgView.DataSource = list; dtgView.DataBind(); } } protected void dtgView_RowCommand(object sender, GridViewCommandEventArgs e) { //Need to set CommandArgument=row index int rowCount = 0; foreach (GridViewRow row in dtgView.Rows) { if (rowCount == Convert.ToInt16(e.CommandArgument)) { string str = ((DropDownList)row.FindControl("ddl")).SelectedValue.ToString(); } rowCount++; } }
here,
dtgView=GridView
ddl=DropDownList inside your gridview
try this...
这篇关于从gridview的下拉列表中获取所选项目的值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文