1

网。我想从 gridview 中获取选定的值到文本框中,我使用 sqlserver 数据库将数据显示到 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 数据源?

4

3 回答 3

0

您并没有真正在 MVC 中使用模型。将状态完整的网络表单代码和控制器混在一起会让你感到困惑。

控制器对 View(aspx) 一无所知,因此您需要将 FormCollection 作为模型解析为 Action。

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

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

了解如何在控制器和视图ASP.NET MVC 入门之间解析模型。

于 2013-07-05T08:07:12.893 回答
0

要获取一个选定单元格的值,您可以使用以下CellClick事件gridview

private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
    textBox1.Text = GridView1.Rows[e.RowIndex].Cells[0].Value.ToString();
}
于 2013-07-05T06:39:41.517 回答
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"];

于 2013-07-05T06:51:50.490 回答