【问题标题】:Query Database Using JavaScript使用 JavaScript 查询数据库
【发布时间】:2016-10-22 11:01:11
【问题描述】:

我对 JavaScript 还很陌生,以前从未使用过 Ajax。我想在 Index.cshtml 中添加一个 OnClick,因此当单击一行时,我的代码将查询数据库 (MSSQL) 并返回结果。 我在数据库中有两个表,用户和联系人。 User 中的主键 UID 是 Contact 中的外键。这是我的代码:

控制器

  private UserInfoEntities db = new UserInfoEntities();

  public ActionResult Index(){
      var users = from u in db.User orderby u.UID select u;
      return View(users.ToList());
}

查看

@<Info.Model.User>
   <script type="text/javascript">
    function showEmail() {
        var tb = document.getElementById("users");
        var rows = tb.rows;
        for (var i = 1; i < rows.length; i++) {
            rows[i].onclick = (function() { 
               //some code that query Contact table using UID
               // and return Contact.Email in a popup windows or something
            });
        }
    }
</script>
<table class="table" id="users" onclick="showEmail()">
    <tr>
        <th>
            @Html.DisplayNameFor(model => model.NAME)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.UID)
        </th>
    </tr>    
@foreach (var item in Model) {
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.NAME)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.UID)
        </td>   
    </tr>

感谢任何帮助!

【问题讨论】:

  • @&lt;List&lt;Info.Model.User&gt;&gt;
  • 与其在表格点击上设置此功能onclick="showEmail()",不如在行点击上设置它,就像这样 - &lt;tr onclick="showEmail()"&gt;...。现在您无需遍历每一行。
  • " for (var i = 1;" -- 你是故意跳过第一行吗?

标签: javascript sql-server ajax asp.net-mvc


【解决方案1】:

试试这个;

 <script type="text/javascript">
    function showEmail() {

               //some code that query Contact table using UID
               // and return Contact.Email in a popup windows or something

    }
</script>
<table class="table" id="users" >
    <tr>
        <th>
            @Html.DisplayNameFor(model => model.FirstOrDefault().NAME)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.FirstOrDefault().UID)
        </th>
    </tr>    
@foreach (var item in Model) {
    <tr onclick="showEmail()">
        <td>
            @Html.DisplayFor(modelItem => item.NAME)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.UID)
        </td>   
    </tr>
}

【讨论】:

  • 您遇到了什么问题?
  • 当点击一行时,该行的user.UID作为参数传递给javascrip代码,代码将查询数据库中的联系人表在哪里(user.UID == contact.UID) ,并返回contact.EMAIL
  • 没有得到你。您是在问如何在其中传递参数?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-09-19
  • 1970-01-01
  • 2017-12-17
  • 2023-04-10
  • 2020-11-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多