在Datagridview的模板列中的dropdownlist的selectindexchanged事件问题

.Net技术 码拜 9年前 (2016-03-06) 1293次浏览
MoshangYanYu 于 2016-06-01 16:42:53 编辑

本人在Datagridview的模板列中有两个dropdownlist,一个是接收人单位,一个是接收人。两个下拉框需要联动。
现在数据已经加载出来了,但是接收人这个dropdownlist的selectindexchanged事件里面却获取不到下拉框的对象
请教大家,怎么获取下拉框对象?

SqlDataBase sd = new SqlDataBase();
string sql = "";
DataTable dt = new DataTable();
DropDownList jsrdw=new DropDownList();
DropDownList jsr=new DropDownList();
protected void DataGrid1_ItemDataBound(object sender, DataGridItemEventArgs e)
	{
		if (e.Item.ItemIndex > -1)
		{
			jsrdw = (DropDownList)e.Item.Cells[10].Controls[1];
			jsr = (DropDownList)e.Item.Cells[11].Controls[1];
			sql = "select distinct xueyuan from userinfo2 where xueyuan is not null";
			dt = sd.DT(sql);
			jsrdw.DataSource = dt;
			jsrdw.DataTextField = "xueyuan";
			jsrdw.DataValueField = "xueyuan";
			jsrdw.DataBind();
			sql = "select xingming from userinfo2 where xingming is not null";
			dt = sd.DT(sql);
			jsr.DataSource = dt;
			jsr.DataTextField = "xingming";
			jsr.DataValueField = "xingming";
			jsr.DataBind();
		}
	}
protected void jieshoudanwei_SelectedIndexChanged(object sender, EventArgs e)
	{
		jieShouRenDanWei = jsrdw.SelectedItem.Text;  //这里报空指针异常,请教大家应该怎么改为好?谢谢大家!
		sql = "select xingming from userinfo2 where xingming is not null and xueyuan =""+jieShouRenDanWei+""";
		dt=sd.DT(sql);
		jsr.DataSource = dt;
		jsr.DataValueField = "xingming";
		jsr.DataTextField = "xingming";
		jsr.DataBind();
	}
<asp:DataGrid ID="DataGrid1" runat="server" AllowPaging="True" AutoGenerateColumns="False"
				PageSize="50" Width="100%" OnItemCommand="DataGrid1_ItemCommand" OnItemDataBound="DataGrid1_ItemDataBound" OnDeleteCommand="DataGrid1_DeleteCommand">
				<PagerStyle Mode="NumericPages" Visible="False" />
				<Columns>
					<asp:BoundColumn DataField="id" HeaderText="序号" ReadOnly="True"></asp:BoundColumn>
					<asp:BoundColumn DataField="tiaoxingma" HeaderText="条形码"></asp:BoundColumn>
					<asp:BoundColumn DataField="mingcheng" HeaderText="药品名称"></asp:BoundColumn>
					<asp:BoundColumn DataField="leixing" HeaderText="类型"></asp:BoundColumn>
					<asp:BoundColumn DataField="guige" HeaderText="规格"></asp:BoundColumn>
					<asp:BoundColumn DataField="shengchanshang" HeaderText="生产商"></asp:BoundColumn>
					<asp:BoundColumn DataField="shuliang" HeaderText="购入数量"></asp:BoundColumn>
					<asp:BoundColumn DataField="cunfangdd" HeaderText="存放位置"></asp:BoundColumn>
					<asp:BoundColumn DataField="riqi" HeaderText="购入日期"></asp:BoundColumn>
					<asp:BoundColumn DataField="lingyongr" HeaderText="购买人"></asp:BoundColumn>
					<asp:TemplateColumn HeaderText="接收人单位">
						<ItemTemplate>
							<asp:DropDownList ID="jieshoudanwei" runat="server" AutoPostBack="True" OnSelectedIndexChanged="jieshoudanwei_SelectedIndexChanged">
							</asp:DropDownList>
						</ItemTemplate>
					</asp:TemplateColumn>
					<asp:TemplateColumn HeaderText="接收人">
						<ItemTemplate>
							<asp:DropDownList ID="jieshouren" runat="server">
							</asp:DropDownList>
						</ItemTemplate>
					</asp:TemplateColumn>
					<asp:TemplateColumn HeaderText="接收数量">
						<ItemTemplate>
							<asp:TextBox ID="jieshouNum" runat="server" Width="100px"></asp:TextBox>
						</ItemTemplate>
					</asp:TemplateColumn>
					<asp:ButtonColumn CommandName="tiaoji" HeaderText="调剂" Text="调剂"></asp:ButtonColumn>
					<asp:TemplateColumn HeaderText="删除">
						<ItemTemplate>
							<asp:LinkButton runat="server" CausesValidation="false" CommandName="Delete" Text="删除" OnClientClick="return confirm("确定要删除吗?")"></asp:LinkButton>
						</ItemTemplate>
					</asp:TemplateColumn>
				</Columns>
				<HeaderStyle BackColor="#00CCCC" Font-Bold="True" Font-Italic="False" Font-Overline="False"
					Font-Strikeout="False" Font-Underline="False" />
			</asp:DataGrid>&nbsp;</div>
解决方案

20

jieshoudanwei_SelectedIndexChanged中是认不出DropDownList jsrdw的.
你试试:
((sender as DropDownList).Parent.Controls.FindControl(“jieshoudanwei”) as DropDownList).Text
差不多是这样

20

jieShouRenDanWei = jsrdw.SelectedItem.Text;
你在调用jsrdw.SelectedItem.之前需要保证selecteditem不为空,目测你代码里面没有选择item的地方。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明在Datagridview的模板列中的dropdownlist的selectindexchanged事件问题
喜欢 (0)
[1034331897@qq.com]
分享 (0)