请问!又是烦人的datagrid啦!

pear13 2003-07-28 01:08:30

我在page_load事件中,在使用datagrid时,我用了一个模板列,其中放了一个table,包括文本框和下拉列表框!现在我就是用select 语句查出数据库里的数据,放到一个dataset中,绑定的时候,我不知道如何把数据绑定到下拉列表框!
谢谢!
...全文
22 7 打赏 收藏 举报
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
golook 2003-07-28
  • 打赏
  • 举报
回复
和你的Datagrid一样绑定,你用的是C#吧
流梓 2003-07-28
  • 打赏
  • 举报
回复
代码为:
//加入编辑选项,使能在DropDownList中显示数据,于男女
public string[] Title
{
get
{
return new string[4]{"Mr.","Dr.","Ms.","Mrs."};
}
}
//对DropDownList数据源绑定要特殊点,多想想
//Title为上面的组,小写的title为DropDownList中的数据源,这个你看看Html标记中的模板, 多想想这个原理
public int Get(object title) //方法绑定DropDownList数据,在模板中调用这个方法
{
return Array.IndexOf(Title,title.ToString());
}


HTMS中代码:
<EditItemTemplate>
<asp:DropDownList id="DropDownList1" runat="server" DataSource='<%# Title %>' SelectedIndex='<%# Get(DataBinder.Eval(Container.DataItem,"Title"))%>'>
</asp:DropDownList>
</EditItemTemplate>
march22 2003-07-28
  • 打赏
  • 举报
回复
<asp:datagrid id="picDG" Runat="server" Width="100%" OnItemDataBound="picDG_DL" BorderWidth="0" OnPageIndexChanged="picDG_Paging" OnSortCommand="picDG_Sortting" AllowSorting="True" DataKeyField="ROW_ID" AutoGenerateColumns="False" PageSize="1" AllowPaging="True" GridLines="Both" BorderColor="Gainsboro" CellSpacing="1" CellPadding="1" PagerStyle-HorizontalAlign="Right" PagerStyle-Mode="NumericPages">
<HeaderStyle HorizontalAlign="Center" CssClass="ft" BackColor="#3a6ea5" ForeColor="white" Height="22"></HeaderStyle>
<ItemStyle HorizontalAlign="Center" CssClass="ft"></ItemStyle>
<AlternatingItemStyle BackColor="Gainsboro" CssClass="ft"></AlternatingItemStyle>
<PagerStyle Visible="False" NextPageText="上一页" PrevPageText="下一页" CssClass="ft"></PagerStyle>
<Columns>
<asp:BoundColumn DataField="ROW_ID" ReadOnly="True" Visible="False"></asp:BoundColumn>
<asp:TemplateColumn HeaderText="选择">
<ItemTemplate>
<asp:CheckBox ID="chkPic" Runat="server" CssClass="ft"></asp:CheckBox>
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn HeaderText="手机品牌" DataField="MOBILE_BRAND" SortExpression="MOBILE_BRAND"></asp:BoundColumn>
<asp:BoundColumn HeaderText="型号" DataField="MOBILE_MODEL"></asp:BoundColumn>
<asp:TemplateColumn HeaderText="栏目/类别">
<ItemTemplate>
<asp:DropDownList ID="dlColumnList" Runat="server" CssClass="ft" AutoPostBack="True" OnSelectedIndexChanged="ColDL_SelectedIndexChanged"></asp:DropDownList>  
<asp:DropDownList ID="dlCategory" Runat="server" CssClass="ft"></asp:DropDownList>
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn HeaderText="彩图标题" DataField="PHOTO_TITLE"></asp:BoundColumn>
<asp:BoundColumn HeaderText="宽" DataField="PHOTO_WIDTH"></asp:BoundColumn>
<asp:BoundColumn HeaderText="高" DataField="PHOTO_HEIGHT"></asp:BoundColumn>
<asp:BoundColumn HeaderText="上传时间" DataField="UPLOAD_DATETIME" SortExpression="UPLOAD_DATETIME"></asp:BoundColumn>
<asp:BoundColumn HeaderText="管理员" DataField="ADMIN_REAL_NAME"></asp:BoundColumn>
<asp:TemplateColumn HeaderText="编辑">
<ItemTemplate>
<asp:HyperLink ID="editIMG" Runat=server ImageUrl="../images/edit.gif" NavigateUrl='<%# "editMMSPhoto.aspx?rid=" + DataBinder.Eval(Container.DataItem,"ROW_ID")%>'>
</asp:HyperLink>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="图片">
<ItemTemplate>
<asp:ImageButton ID="displayIMG" Runat="server" ImageUrl="../images/dtbtn.jpg"></asp:ImageButton>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:datagrid>


================================================================================
在OnItemDataBound里面邦定DropDownList数据
================================================================================

public void picDG_Sortting(object sender,System.Web.UI.WebControls.DataGridSortCommandEventArgs e)
{
string strSort = e.SortExpression;
if (strSort == (string)ViewState["SortExpression"])
strSort += " Desc";
ViewState["SortExpression"] = strSort;
DataTable dt = this.objdbc.GetDataTable(this.Session["selSqlstr"].ToString());
dt.DefaultView.Sort = strSort;

this.picDG.DataSource = dt;
this.picDG.DataBind();
this.ShowStats();
}

public void picDG_Paging(object sender,System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
this.picDG.CurrentPageIndex = e.NewPageIndex;
this.picDG.DataSource = this.objdbc.GetDataTable(this.Session["selSqlstr"].ToString());
this.picDG.DataBind();
this.ShowStats();
}

public void picDG_DL(object sender,System.Web.UI.WebControls.DataGridItemEventArgs e)
{
ListItemType itemType = e.Item.ItemType;

if (itemType == ListItemType.Item || itemType == ListItemType.AlternatingItem)
{

string selSqlstr = "SELECT COLUMN_ID,COLUMN_NAME FROM COLUMN_TBL WHERE SUBSTRING(COLUMN_ID,1,3) = '001' AND COLUMN_LEVEL = '1'";


DropDownList dlcolumn = (DropDownList)e.Item.FindControl("dlColumnList");

dlcolumn.DataSource = this.objdbc.GetDataTable(selSqlstr);
dlcolumn.DataTextField = "COLUMN_NAME";
dlcolumn.DataValueField = "COLUMN_ID";
dlcolumn.DataBind();

string colid = (string)DataBinder.Eval(e.Item.DataItem,"COLUMN_ID");

string selSqlstr1 = "SELECT CATEGORY_ID,CATEGORY_NAME FROM CATEGORY_TBL WHERE COLUMN_ID = '"+colid+"'";
DropDownList dlcategory = (DropDownList)e.Item.FindControl("dlCategory");

dlcategory.DataSource = this.objdbc.GetDataTable(selSqlstr1);
dlcategory.DataTextField = "CATEGORY_NAME";
dlcategory.DataValueField = "CATEGORY_ID";
dlcategory.DataBind();

string cateid = (string)DataBinder.Eval(e.Item.DataItem,"CATEGORY_ID");
DropDownList dlcol = (DropDownList)e.Item.FindControl("dlColumnList");
DropDownList dlcate = (DropDownList)e.Item.FindControl("dlCategory");

dlcate.SelectedIndex = dlcate.Items.IndexOf(dlcate.Items.FindByValue(cateid));
dlcol.SelectedIndex = dlcol.Items.IndexOf(dlcol.Items.FindByValue(colid));

e.Item.Cells[11].Attributes["onclick"] = "javascript:window.open('ShowPics.aspx?id=" + e.Item.Cells[0].Text.ToString()+ "','','width=200,height=160,scrollbars');";
}

}
chnking 2003-07-28
  • 打赏
  • 举报
回复
在datagrid的模板列中加入一个DropDownList ,在cs中如何访问哦.
我在cs文件中声明一下:
protected System.Web.UI.WebControls.DropDownList DropDownList1;
可是运行时代码中声明的DropDownList1跟aspx页面上的那个不是一回事:

<EditItemTemplate>
<asp:DropDownList id="DropDownList1" runat="server" Width="112px">
</asp:DropDownList>
</EditItemTemplate>
wayneliu 2003-07-28
  • 打赏
  • 举报
回复
private void Bind_drp_res_name()
{
string sql_str="select * from table";

DataTable dt=Public_Class.Get_Select_Table(sql_str);//调用事先写好的函数!

drp_res_name.Items .Add ("--选择--");

for(int i=0;i<dt.Rows.Count ;i++)
{
drp_res_name.Items .Add (dt.Rows[i][0].ToString ());
}
drp_res_name.DataBind ();
}
pear13 2003-07-28
  • 打赏
  • 举报
回复
我是象在文本框那样datasource里绑定数据的,但没有显示呀?
能不能帮我说详细点点哟?谢谢哒!
panyee 2003-07-28
  • 打赏
  • 举报
回复
另放一个DataSource
相关推荐
发帖
.NET社区

6.1w+

社区成员

.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
帖子事件
创建了帖子
2003-07-28 01:08
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。