如何使用MVC(aspx).net在文本框中获取gridview的选定值

时间:2013-07-05 06:32:23

标签: c# asp.net-mvc gridview sqldatasource

网。 我想从gridview中选择值到文本框中,我已经使用sqlserever数据库将数据显示到gridview中。 没有其他链接对ol有帮助me.plz帮助我。

我的BranchManage.aspx页面的aspx gridview是:

<asp:GridView ID="GridView1" runat="server" CellPadding="4" ForeColor="#333333" 
     GridLines="None" AutoGenerateColumns="False" DataSourceID="LinqDataSource_Branch">
     <Columns>
          <asp:CommandField ShowSelectButton="True" />
          <asp:BoundField DataField="BranchName" HeaderText="BranchName" ReadOnly="True"
               SortExpression="BranchName" />
          <asp:BoundField DataField="CreateDate" HeaderText="CreateDate" ReadOnly="True"
               SortExpression="CreateDate" />
     </Columns>
  </asp:GridView>
  <asp:LinqDataSource ID="LinqDataSource_Branch" runat="server" 
       ContextTypeName="jemex.db.JemexDataContext" EntityTypeName="" 
      Select="new (BranchName, CreateDate)" TableName="Branches">
  </asp:LinqDataSource>

-----这是我对LoginController.cs代码的一部分:

public ActionResult BranchManage(string submitButton, string branchname)
{
   ViewBag.UserName = Session["username"];
   if (Session["type"].ToString() == "Admin")
   {
       switch (submitButton)
       {
           case "Create Account":
              return (Create_BranchAccount(branchname));
           case "Update Account":
              return (Update_BranchAccount());
           case "Clear":
              return (ClearBranch());
           default:
              return View();
         }
    }
    else
   {
      return View("Login");
   }

}
public ActionResult Create_BranchAccount(string branchname)
{
  //DB.Execute_Qury("INSERT INTO Branches(BranchName,CreateDate,IsDeleted) VALUES (" +
   branchname + "," + System.DateTime.Now + ",False)");
   db1.R_Insert_Branch(branchname, System.DateTime.Now);
   return View("BranchManage");
}
 public ActionResult Update_BranchAccount()
{
   SqlConnection con = new SqlConnection("Data Source=aaa-pc;Initial Catalog=logicnetclub_jemex;Integrated Security=True");
    string strSQL = "Select * from Branches";
    SqlDataAdapter dt = new SqlDataAdapter(strSQL, con);
    DataSet ds = new DataSet();
    dt.Fill(ds, "UserDetail");
    con.Close();
    GridView1.DataSource = ds;
    GridView1.DataBind();
      return View(ViewModel);
}

在update_BranchAccount,我如何获取gridview数据源?

3 个答案:

答案 0 :(得分:0)

要获取所选单元格的值,您可以使用CellClick的{​​{1}}事件:

gridview

答案 1 :(得分:0)

您可以将选定的值或单元格从网格视图放入会话中,然后在当前页面或任何其他所需页面的其他位置重新使用它。因此,当再次请求页面时,值会自动显示在文本框中。

:::试试这个示例代码..希望能解决您的问题:::

 foreach (GridViewRow row in ViewData.Rows)
 {
      RadioButton rb = (RadioButton)row.FindControl("RowSelector");
      if (rb.Checked)
      {                                            
         string address = Convert.ToString(ViewData.Rows[row.RowIndex].Cells[column-index].Text);
         Session["addressValue"] = address;                   
         Response.Redirect("AnotherPage.aspx");
     }
 }

然后在update_BranchAccount,您可以使用 -

访问文本框值
  

textbox1.text = Session [“addressValue”];

答案 2 :(得分:0)

你没有真正在MVC中使用Model。混合状态完整的webform代码和控制器会让你感到困惑。

控制器对View(aspx)一无所知所以你需要将FormCollection解析为Model to Action。

public ActionResult BranchManage(string branchname, FormCollection formData){
 //.. now debug or test what formData really look like

您可以将FormCollection更改为任何用户定义的类型(模型)

学习如何在控制器和视图Getting Started with ASP.NET MVC之间解析模型。