DataGrid:绑定好后,我想在代码文件里处理某列的数据,然后再把处理好的结果在前台DataGrid里显示... 比如一个用户信息列表显示页面,用DataGrid,后台Bind后,在前台显示正常!但我想在后台.cs文件中修改某一项的值,然后再把结果返回到前台DataGrid数据列里!谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在绑定的时候可以用函数~~如下:<asp:TemplateColumn HeaderText="会议类别"> <ItemTemplate> <asp:Label ID="Label2" Text='<%#metting_type_deal(DataBinder.Eval(Container.DataItem, "metting_type_no").ToString())%>' Runat =server > </asp:Label> </ItemTemplate> </asp:TemplateColumn>CS代码中:设置函数就可以了,下面是我的一个窗体中的一部分,仅做参考protected string metting_type_deal(string id) //取得会议类别名称 { string sql="select metting_type from metting_type where metting_type_no='"+id.ToString()+"'"; DataTable dt=(DataTable)Public_Class.Get_Select_Table(sql); string project_m_name=dt.Rows[0]["metting_type"].ToString(); return project_m_name; } 能给个示例吗?偶初学还没搞懂!比如数据库一个表其中一个字段值有2种状态,0和非0的值,我用if判断来分别显示对应的实际意思!但用datagrid绑定好后好像不能处理了,能给你实际参考的例子吗? tks wangdequan1024 我消化下^-^ 你的.cs里面不理解,这是我的一个.cs代码,如何附加你这段代码呢?tkspublic class DataGrid : System.Web.UI.Page { protected System.Web.UI.WebControls.DataGrid UserList; private void Page_Load(object sender, System.EventArgs e) { // 在此处放置用户代码以初始化页面 if(Session["Username"] == null || Session["Username"].ToString() == "") { Response.Redirect("login.aspx"); } if (!IsPostBack) BindGrid(); } public void UserList_Page(object sender,DataGridPageChangedEventArgs e) { UserList.CurrentPageIndex = e.NewPageIndex; BindGrid(); } public void BindGrid() { string strconn=ConfigurationSettings.AppSettings["TyConn"]; SqlConnection conn=new SqlConnection(strconn); conn.Open(); SqlDataAdapter da=new SqlDataAdapter("Select * From UserAccounts",conn); DataSet ds=new DataSet(); da.Fill(ds); //绑定 UserList.DataSource=ds; UserList.DataBind(); conn.Close(); } #region Web 窗体设计器生成的代码 override protected void OnInit(EventArgs e) { // // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。 // InitializeComponent(); base.OnInit(e); } /// <summary> /// 设计器支持所需的方法 - 不要使用代码编辑器修改 /// 此方法的内容。 /// </summary> private void InitializeComponent() { this.ID = "DataGrid"; this.Load += new System.EventHandler(this.Page_Load); } #endregion } 我上面给你的那段代码是我的一个项目中的一小块,你的问题当然不能直接就这样放进去!<asp:TemplateColumn HeaderText="会议类别"> <ItemTemplate> <asp:Label ID="Label2" Text='<%#panduan(DataBinder.Eval(Container.DataItem, "这里是你数据库中需要判断的字段名").ToString())%>' Runat =server > </asp:Label> </ItemTemplate> </asp:TemplateColumn>你可在CS文件中这样写:protected string panduan(int value) //取得会议类别名称 { if(value==0) { return "你要返回的值"; } else { return "另外一个你要返回的值"; } } 函数可以加到CS中的任意地方,不需要调用,你只要正常绑定DataGrid就可以了,当绑定到相应字段(也就是你要判断的字段时),它会自已调用的。还有你数据库中的那个需要判断的字段是什么类型的,bit?int?函数的参数value的类型要随之改一下 有个疑问,继续请教: protected string panduan(int MaxDown) { if(MaxDown==0) { return "无限制"; } else { return "sz"; }上面就是我参考你的代码,但是还有个问题,如果条件不满足执行else里的语句,我希望得到的结构还是原始字段数据不是其他的,应该怎么写? protected string panduan(int MaxDown) { if(MaxDown==0) { return "无限制"; } else { return MaxDown; }再把那个参数传回去不就行了 如何使用新浪股票接口获取恒生指数及美国的一些股票指数? 【编码转换问题,在线等】 在浏览器中不能运行,提示需要输入密码和用户名,该怎么办? 很急!很急~~关于ASP不同角色登录的问题 User.Identity.IsAuthenticated问题 按钮修改自定义控件的属性无效的问题? 为什么这段代码找不出实际编辑的行 来者有分,请问哪里有web services的源代码可以下载 可编辑的DataGrid控件代码 提供31本ASP15本ASP.NET电子书打包下载 部署的时候出错,怎么办? datagrid的问题,help啊
<asp:TemplateColumn HeaderText="会议类别">
<ItemTemplate>
<asp:Label ID="Label2" Text='<%#metting_type_deal(DataBinder.Eval(Container.DataItem, "metting_type_no").ToString())%>' Runat =server >
</asp:Label>
</ItemTemplate>
</asp:TemplateColumn>CS代码中:设置函数就可以了,下面是我的一个窗体中的一部分,仅做参考
protected string metting_type_deal(string id) //取得会议类别名称
{
string sql="select metting_type from metting_type where metting_type_no='"+id.ToString()+"'";
DataTable dt=(DataTable)Public_Class.Get_Select_Table(sql);
string project_m_name=dt.Rows[0]["metting_type"].ToString();
return project_m_name;
}
但用datagrid绑定好后好像不能处理了,能给你实际参考的例子吗?
这是我的一个.cs代码,如何附加你这段代码呢?tks
public class DataGrid : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DataGrid UserList; private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if(Session["Username"] == null || Session["Username"].ToString() == "")
{
Response.Redirect("login.aspx");
}
if (!IsPostBack) BindGrid();
} public void UserList_Page(object sender,DataGridPageChangedEventArgs e)
{
UserList.CurrentPageIndex = e.NewPageIndex;
BindGrid();
}
public void BindGrid()
{
string strconn=ConfigurationSettings.AppSettings["TyConn"];
SqlConnection conn=new SqlConnection(strconn);
conn.Open();
SqlDataAdapter da=new SqlDataAdapter("Select * From UserAccounts",conn);
DataSet ds=new DataSet();
da.Fill(ds);
//绑定
UserList.DataSource=ds;
UserList.DataBind();
conn.Close();
} #region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.ID = "DataGrid";
this.Load += new System.EventHandler(this.Page_Load); }
#endregion
}
<asp:TemplateColumn HeaderText="会议类别">
<ItemTemplate>
<asp:Label ID="Label2" Text='<%#panduan(DataBinder.Eval(Container.DataItem, "这里是你数据库中需要判断的字段名").ToString())%>' Runat =server >
</asp:Label>
</ItemTemplate>
</asp:TemplateColumn>你可在CS文件中这样写:protected string panduan(int value) //取得会议类别名称
{
if(value==0)
{
return "你要返回的值";
}
else
{
return "另外一个你要返回的值";
}
}
还有你数据库中的那个需要判断的字段是什么类型的,bit?int?函数的参数value的类型要随之改一下
protected string panduan(int MaxDown)
{
if(MaxDown==0)
{
return "无限制";
}
else
{
return "sz";
}上面就是我参考你的代码,但是还有个问题,如果条件不满足执行else里的语句,我希望得到的结构还是原始字段数据不是其他的,应该怎么写?
{
if(MaxDown==0)
{
return "无限制";
}
else
{
return MaxDown;
}
再把那个参数传回去不就行了