比如一个用户信息列表显示页面,用DataGrid,后台Bind后,在前台显示正常!
但我想在后台.cs文件中修改某一项的值,然后再把结果返回到前台DataGrid数据列里!
谢谢

解决方案 »

  1.   

    在绑定的时候可以用函数~~如下:
    <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.   

    能给个示例吗?偶初学还没搞懂!比如数据库一个表其中一个字段值有2种状态,0和非0的值,我用if判断来分别显示对应的实际意思!
    但用datagrid绑定好后好像不能处理了,能给你实际参考的例子吗?
      

  3.   

    tks wangdequan1024 我消化下^-^
      

  4.   

    你的.cs里面不理解,
    这是我的一个.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
    }
      

  5.   

    我上面给你的那段代码是我的一个项目中的一小块,你的问题当然不能直接就这样放进去!
    <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 "另外一个你要返回的值";
                                  }
    }
      

  6.   

    函数可以加到CS中的任意地方,不需要调用,你只要正常绑定DataGrid就可以了,当绑定到相应字段(也就是你要判断的字段时),它会自已调用的。
    还有你数据库中的那个需要判断的字段是什么类型的,bit?int?函数的参数value的类型要随之改一下
      

  7.   

    有个疑问,继续请教:
    protected string panduan(int MaxDown)
    {
    if(MaxDown==0)
    {
    return "无限制";
    }
    else
    {
    return "sz";
    }上面就是我参考你的代码,但是还有个问题,如果条件不满足执行else里的语句,我希望得到的结构还是原始字段数据不是其他的,应该怎么写?
      

  8.   

    protected string panduan(int MaxDown)
                  {
                         if(MaxDown==0)
                         {
                                return "无限制";
                         }
                         else
                         {
                                return MaxDown;
                         }
    再把那个参数传回去不就行了