求助:datalist中 我用datalist显示一个表,然后想对每一项进行操作,而操作时需要得到某一个列值,怎么做啊?按字段显示后,我在里面添加了一个超链接,这个超链接需要传本行的ID值,请问怎么处理啊? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 数据绑定后再用for(int i=0;i<datalist1.rows.count;i++){这里处理操作}gridview 我都是这么搞的,datalist 没用过,应该原理差不多 J2EE里有个URL重定向可以传入指定参数到sevlet里去处理,.net没用过,不知道有没有。 protected void dataList_ItemDataBound(object sender, DataListItemEventArgs e) { }你可以用 HyperLink 去做超連結hlModify.NavigateUrl = "****.aspx?id=***" 這樣去做 HyperLink hlModify = (HyperLink)e.Item.FindControl("hlModify");hlModify.NavigateUrl = "****.aspx?id=***" 這樣去做 protected void dataList_ItemDataBound(object sender, DataListItemEventArgs e) { if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { #region DataRowView view = (DataRowView)e.Item.DataItem; Label lbl = (Label)e.Item.FindControl("lblType"); string modifyType = lbl.Text; switch (lbl.Text) { case "V": lbl.Text = "视频"; break; case "A": lbl.Text = "音频"; break; case "T": lbl.Text = "文章"; break; } #region 判断是否可以删除修改 HyperLink hlModify = (HyperLink)e.Item.FindControl("hlModify"); LinkButton lbtnDelete = (LinkButton)e.Item.FindControl("lbtnDelete"); Label lblPublishGuid = (Label)e.Item.FindControl("lblPublishGUID"); if (ViewState["URL"].ToString() == "Admin") { hlModify.Visible = true; lbtnDelete.Visible = true; lbtnDelete.CommandName = lblPublishGuid.Text; lbtnDelete.CommandArgument = Convert.ToString(view["IMAGE_PATH"]); hlModify.NavigateUrl = new LEE.CIM.DATA.Utility().ApplicationPath + "/CIM/" + ViewState["URL"].ToString() + "/ModifyResource.aspx?PublishGuid=" + lblPublishGuid.Text + "&Model=Modify" + "&FOLDER=" + Convert.ToString(ViewState["FOLDER"]) + "&Type=" + modifyType + "&FlashID=" + Convert.ToString(ViewState["FlashID"]); }}我之前做的一個例子你看看 //前台加上主键标识绑定主键,红字处<asp:DataList ID="DataList1" runat="server" DataKeyField="orderid" ></asp:DataList>//后台取出主键int id = (int)this.DataList1.DataKeys[e.Item.ItemIndex]; 在gridview的RowDataBound(object sender, GridViewRowEventArgs e)事件中 e.Row.Cells[i] 这里的cells就是第几列,你可以看看里面属性或者方法还有一个e.Row.RowIndex这个就是行ID在RowCreated事件中仔细看看基本上你的问题就能解决了。 在RowDataBound事件里面使用e.row.FindCtrl("控件名")就可以获得唯一控件,然后可以对其初始化操作如果是事件的话 好像有个click的事件吧?通过 FindCtrl也能处理 如果用Entity Framework连接oracle 如何让数个textBox支持backspace 关于数据库连接何时启用,何时关闭 Datatable和dataset的问题 问个继承执行的问题 有无环有向图的算法? 利用xslt写XML文件的问题 应用installshield打包时候删除临时文件夹失败 DataGrid中的列的格式化 求教正则表达式 回车事件 c#界面美化
for(int i=0;i<datalist1.rows.count;i++)
{这里处理操作}gridview 我都是这么搞的,datalist 没用过,应该原理差不多
protected void dataList_ItemDataBound(object sender, DataListItemEventArgs e)
{ }你可以用 HyperLink 去做超連結
hlModify.NavigateUrl = "****.aspx?id=***" 這樣去做
hlModify.NavigateUrl = "****.aspx?id=***" 這樣去做
protected void dataList_ItemDataBound(object sender, DataListItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
#region
DataRowView view = (DataRowView)e.Item.DataItem;
Label lbl = (Label)e.Item.FindControl("lblType");
string modifyType = lbl.Text;
switch (lbl.Text)
{
case "V":
lbl.Text = "视频";
break;
case "A":
lbl.Text = "音频";
break;
case "T":
lbl.Text = "文章";
break;
} #region 判断是否可以删除修改
HyperLink hlModify = (HyperLink)e.Item.FindControl("hlModify");
LinkButton lbtnDelete = (LinkButton)e.Item.FindControl("lbtnDelete");
Label lblPublishGuid = (Label)e.Item.FindControl("lblPublishGUID");
if (ViewState["URL"].ToString() == "Admin")
{
hlModify.Visible = true;
lbtnDelete.Visible = true;
lbtnDelete.CommandName = lblPublishGuid.Text;
lbtnDelete.CommandArgument = Convert.ToString(view["IMAGE_PATH"]);
hlModify.NavigateUrl = new LEE.CIM.DATA.Utility().ApplicationPath + "/CIM/" + ViewState["URL"].ToString() + "/ModifyResource.aspx?PublishGuid=" + lblPublishGuid.Text + "&Model=Modify" + "&FOLDER=" + Convert.ToString(ViewState["FOLDER"]) + "&Type=" + modifyType + "&FlashID=" + Convert.ToString(ViewState["FlashID"]);
}
}我之前做的一個例子你看看
<asp:DataList ID="DataList1" runat="server" DataKeyField="orderid" >
</asp:DataList>//后台取出主键
int id = (int)this.DataList1.DataKeys[e.Item.ItemIndex];
e.Row.Cells[i] 这里的cells就是第几列,你可以看看里面属性或者方法还有一个e.Row.RowIndex这个就是行ID在RowCreated事件中仔细看看基本上你的问题就能解决了。
使用e.row.FindCtrl("控件名")
就可以获得唯一控件,然后可以对其初始化操作如果是事件的话 好像有个click的事件吧?
通过 FindCtrl也能处理