Datagrid中用模版列绑定DropDownList控件,其中DropDownList的数据从数据库中抓取,该如何在DataGrid数据绑定的时候自动绑定DropDwonList的数据。aspx:
<asp:datagrid id="DataGrid1" runat="server" Font-Names="宋体" BorderColor="#C0C0FF" AutoGenerateColumns="False">
<AlternatingItemStyle BackColor="#FDF9DC"></AlternatingItemStyle>
<SelectedItemStyle ForeColor="#663399" BackColor="#FFCC66"></SelectedItemStyle>
<HeaderStyle BackColor="#ffffc0" Font-Bold="True" Height="20"></HeaderStyle>
<ItemStyle Height="20" BackColor="#D6F3BE" HorizontalAlign="Center"></ItemStyle>
<Columns>
<asp:BoundColumn DataField="id" HeaderText="序号"></asp:BoundColumn>
<asp:TemplateColumn HeaderText="科目名称">
<HeaderStyle HorizontalAlign="Center"></HeaderStyle>
<ItemStyle HorizontalAlign="Center"></ItemStyle>
<ItemTemplate>
<asp:DropDownList id="Ddlcode" runat="server" Width="95px" Font-Size="9pt" selectedindex='<%# DataBinder.Eval(Container, "DataItem.Ccode") %>'>
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:datagrid>
aspx.cs
private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
SqlConnection conn=new SqlConnection();
conn.ConnectionString="data source=10.102.7.100;initial catalog="+Session["ufAccount"].ToString()+";persist security info=False;user id=sa;password=tclznmaster;packet size=4096";
conn.Open();
SqlDataAdapter da=new SqlDataAdapter("select ccode,(ccode+'|'+ccode_name) as ccode_name from code where charindex('4105',ccode)=1 or patindex('55[01,02]%',ccode)=1 order by ccode",conn);
DataSet ds=new DataSet();
da.Fill(ds,"table1");
DropDownList ddl=(DropDownList)e.Item.FindControls("Ddlcode");
ddl.DataSource=ds.Tables["table1"];
ddl.DataTextField="ccode_name";
ddl.DataValueField="ccode";
ddl.DataBind();
}以上代码出现“未将对象引用设置到对象的实例"的错误。
<asp:datagrid id="DataGrid1" runat="server" Font-Names="宋体" BorderColor="#C0C0FF" AutoGenerateColumns="False">
<AlternatingItemStyle BackColor="#FDF9DC"></AlternatingItemStyle>
<SelectedItemStyle ForeColor="#663399" BackColor="#FFCC66"></SelectedItemStyle>
<HeaderStyle BackColor="#ffffc0" Font-Bold="True" Height="20"></HeaderStyle>
<ItemStyle Height="20" BackColor="#D6F3BE" HorizontalAlign="Center"></ItemStyle>
<Columns>
<asp:BoundColumn DataField="id" HeaderText="序号"></asp:BoundColumn>
<asp:TemplateColumn HeaderText="科目名称">
<HeaderStyle HorizontalAlign="Center"></HeaderStyle>
<ItemStyle HorizontalAlign="Center"></ItemStyle>
<ItemTemplate>
<asp:DropDownList id="Ddlcode" runat="server" Width="95px" Font-Size="9pt" selectedindex='<%# DataBinder.Eval(Container, "DataItem.Ccode") %>'>
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:datagrid>
aspx.cs
private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
SqlConnection conn=new SqlConnection();
conn.ConnectionString="data source=10.102.7.100;initial catalog="+Session["ufAccount"].ToString()+";persist security info=False;user id=sa;password=tclznmaster;packet size=4096";
conn.Open();
SqlDataAdapter da=new SqlDataAdapter("select ccode,(ccode+'|'+ccode_name) as ccode_name from code where charindex('4105',ccode)=1 or patindex('55[01,02]%',ccode)=1 order by ccode",conn);
DataSet ds=new DataSet();
da.Fill(ds,"table1");
DropDownList ddl=(DropDownList)e.Item.FindControls("Ddlcode");
ddl.DataSource=ds.Tables["table1"];
ddl.DataTextField="ccode_name";
ddl.DataValueField="ccode";
ddl.DataBind();
}以上代码出现“未将对象引用设置到对象的实例"的错误。
解决方案 »
- 请各位大大帮忙解决下一个泛型类的问题
- struct 提示受保护级别限制
- 请问一些C#的一些问题
- C#的水晶报表如何使用,请高手指点?
- 在DataGrid中有一列进行超级连接,但不知如何向连接页传送参数??
- SOS!安装VS.net2003的时候出现错误1935安装汇编组件错误
- 如何用C#打印倒序!!!急啊!!!!
- HELP:关于ComponentArt.Web.UI.TreeView的客户端事件!
- 为什么编译好的datagridview换了机器就不能用?
- 使用FSO如何得到一个文件夹下的所有文件和子文件夹?
- 关于发生类型为 System.StackOverflowException 的异常
- 什么是托管和非托管代码?
有哪位兄弟有做过类似的东西吗?
if(e.Item.ItemType==ListItemType.EditItem)
{ }