使用模板列,编辑模板,托放一个dropdownlist控件,指定其DataSource属性(数据源),DataMember属性(表),TextField(字段),ValueField(子段)。Page_Load(){
……
DataGrid1.DataBind();
}
……
DataGrid1.DataBind();
}
解决方案 »
- 关于jquery表单验证的问题
- 【分享】js无刷新上传图片及在线切割
- 求高手们来帮一下忙,很急很急,真的很急!!关于asp.net异步线程的用法
- 菜鸟提问:html页面如何使用AJAX?后台是用.NET开发 不知道html能否实现动态加载,如果能怎样实现!麻烦高人给详细解释一下!谢谢您了
- 按钮回传事件
- 关于iframe的问题,大家帮忙看看!很急!!!
- 无刷新会比有刷新快吗?
- 多字段求和绑定?
- 为什么出现下面 的错误,高分,立刻给!
- 特急!问题2个!再做不出来!要被炒了!up
- 在TreeView中,如果我知道了某个节点的ID,我怎么使这个节点处于被选中状态?
- 加入datagrid中的checkbox
<ItemTemplate>
<asp:Label id=Label6 runat="server" Text='<%# getNote(DataBinder.Eval(Container, "DataItem.personationid").ToString()) %>'>
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList id=DropDownList1 runat="server" DataMember="EDIT_DATAlIST" DataSource="<%# dsEditData1 %>" Width="93px" DataTextField="editData" DataValueField="editValue" SelectedIndex='<%# getSelectedIndex(DataBinder.Eval(Container, "DataItem.personationid").ToString()) %>'>
</asp:DropDownList>
</EditItemTemplate>
</asp:TemplateColumn>==========================================================================
private void Page_Load(object sender, System.EventArgs e)
{
……
gridbind();
}
==============================================================================
private void gridbind()
{
dsSecurity1=pso.getDsSecurity();
try
{
DataGrid1.DataBind();
}
catch(Exception ee)
{
//删除当前页最后一行发生的异常
if(DataGrid1.CurrentPageIndex>=DataGrid1.PageCount)
{
int i=DataGrid1.CurrentPageIndex;
i--;
DataGrid1.CurrentPageIndex=i;
}
DataGrid1.DataBind();
}
dsEditData1=(dsEditData)Session["dsEditData1"];
ddlPersonation.DataBind(); }
=======================================================================
//
public int getSelectedIndex(string str)
{
int idx=0;
dsEditData1=(dsEditData)Session["dsEditData1"];
for(int i=0;i<dsEditData1.EDIT_DATAlIST.Rows.Count;i++)
{
dsEditData.EDIT_DATAlISTRow editRow=(dsEditData.EDIT_DATAlISTRow)dsEditData1.EDIT_DATAlIST.Rows[i];
string dataStr=editRow.editValue;
if(dataStr==str)
{
idx=i;
break;
}
}
return idx;
}
Sub dd(ByVal Sender As Object, ByVal e As DataGridItemEventArgs) Handles DataGrid1.ItemDataBound Dim ddl As DropDownList = DataGrid1.Items(e.Item.ItemIndex).Cells(4).FindControl("ddl3")
Dim sql As String = "select * from ****"
hisun.dispdd(sql, ddl, "**", "id")
End Sub
运行后的错误如下:
索引超出范围。必须为非负值并小于集合大小。参数名:index
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.ArgumentOutOfRangeException: 索引超出范围。必须为非负值并小于集合大小。参数名:index源错误:
行 193: Sub dd(ByVal Sender As Object, ByVal e As DataGridItemEventArgs) Handles DataGrid1.ItemDataBound
行 194:
行 195: Dim ddl As DropDownList = DataGrid1.Items(e.Item.ItemIndex).Cells(4).FindControl("ddl3")
……………………………………能帮我看看是哪错了吗?谢谢!解决者有分
------------------------------------------
Private Sub Datagrid1_ItemCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles Datagrid1.ItemCreated
If e.Item.ItemType = ListItemType.Footer Then
Dim drl As DropDownList = CType(e.Item.Cells(1).FindControl("ddl_gn"), DropDownList)
Dim my_command As New SqlCommand("select yhxm from dl", my_connection)
Dim sqlReader As SqlDataReader
my_connection.Open()
sqlReader = my_command.ExecuteReader()
Dim dy As ArrayList
dy = New ArrayList()
While sqlReader.Read()
dy.Add(sqlReader(0).ToString())
End While
drl.DataSource = dy
drl.DataBind()
sqlReader.Close()
my_connection.Close()
End If
End Sub
Dim sql As String = "select * from 123"
Dim ddl As DropDownList = CType(e.Item.Cells(4).FindControl("ddl3"), DropDownList)
objcon.Open()
Dim cmd As New SqlCommand(sql, objcon)
Dim dr As SqlDataReader
dr = cmd.ExecuteReader()
Dim dy As New ArrayList()
While dr.Read()
dy.Add(dr(0).ToString())
End While
ddl.DataSource = dy
ddl.DataBind()
dr.Close()
objcon.Close()
End If
错误的代码如下:未将对象引用设置到对象的实例。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。源错误:
行 215: dy.Add(dr(0).ToString())
行 216: End While
行 217: ddl.DataSource = dy
行 218: ddl.DataBind()
行 219: dr.Close()
If e.Item.ItemType = ListItemType.Item.Footer Then
我的dropdownlist方在页脚
是编辑列吧!
改一下 Footer 就可以了