从aspx中的sql表中设置默认下拉列表值

时间:2016-02-10 10:54:20

标签: c# asp.net

我是C#和aspx文件的新手。我们使用的是2008年编写的非常旧的应用程序,并且没有开发人员的任何联系方式。我们想要做的是进行一些更改,因为原始代码的某些部分不再相关。 我设法找到.aspx文件并做了一些更改,但其中一些不起作用。我试图找到.aspx.cs文件,但看起来它们都是在bin文件夹中的.dll文件中编译的。我确实找到了原始的.aspx.cs文件。

我遇到的问题是表单中的一个字段是下拉列表,并链接到sql中的数据表,并根据需要进行设置。当我打开网页时,此下拉列表中的默认值为 - 选择联系方式 - 。

我的理解是因为后面的代码有以下几点:

# region populate ContactMethod Combo(Primary and Secondary)**
private void PopulateContactMethod(int intContactMethodID)
{
    // get data
    MasterValue oMV = new MasterValue();
    DataTable dt = oMV.GetAll(MasterValueType.ContactMethod);
    // populate combo
    oUtil.PopulateCombo(cboContact, dt, "intID", "strText",
    intContactMethodID.ToString(), "-Select Contact Method-");
}
# endregion

SQL表具有以下值:1 = Home Phone,2 = Mobile,3 = Email& 4 =无

.aspx文件包含以下内容:

<%@ Page CodeBehind="add_new_user.aspx.cs" Language="c#" AutoEventWireup="false"
 Inherits="App.UI.add_new_user" %>
.
.
.
<tr>
    <td class="formtext" align="right">Primary Contact Method:<SPAN class="star">*</SPAN>
    </td>
    <td class="formtext" vAlign="top" align="left">
       <asp:dropdownlist id="cboContact" runat="server" CssClass="ListBox" Width="150px">
       </asp:dropdownlist>
       <asp:requiredfieldvalidator id="rfvContactMethod" runat="server" 
        ControlToValidate="cboContact" Display="None" ErrorMessage="Please select contact
        method" InitialValue="0">
       </asp:requiredfieldvalidator>
    </td>
</tr>

我们需要的是当我们在此下拉列表中打开网页默认值为None(4)而不是-Select Contact Method - 。

非常感谢任何帮助!

提前谢谢。

4 个答案:

答案 0 :(得分:1)

据我所知,这个.aspx页面不使用母版页。如果是,请找到<head>标记并向其添加新的<script>。在它内部将有一个功能来修复列表的选择:

<head>
    ...
    <script type="text/javascript">
      function fixContactListSelection() {
          var list = document.getElementById("<%=cboContact.ClientID%>");
          list.value = '4';
      }

      if (window.addEventListener) {
          window.addEventListener('load', fixContactListSelection, false);
      } else if (window.attachEvent) {
          window.attachEvent('onload', fixContactListSelection);
      }
    </script>
</head>

但是,如果使用了母版页,并且找不到头标记,请将此<script>及其内容插入页面中的任何位置。根据DDL声明,应该没问题。

答案 1 :(得分:0)

尝试像这样绑定下拉列表

 private void PopulateContactMethod(int intContactMethodID)
    {
    DataTable dt = new DataTable();
            dt = "get Your data from db";

            cboContact.DataSource = dt;
            cboContact.DataTextField = dt.Columns["field to view"].ToString();
            cboContact.DataValueField = dt.Columns["id of field to view"].ToString();
            cboContact.DataBind();
            ListItem li1 = new ListItem("--Select Contact Method--", "0");
            cboContact.Items.Insert(0, li1);
    }

ListItem li1 = new ListItem("--Select Contact Method--", "0");
                cboContact.Items.Insert(0, li1);

制作&#34; - 选择联系方式 - &#34;作为默认值

答案 2 :(得分:0)

尝试使用javascript或jquery

在页面加载后添加
 $("#<%=cboContact.ClientID%>").val("None");

答案 3 :(得分:0)

请查看以下

@Override
public void onClick(View v) {
    switch(v.getId()) {
    case R.id.imageViewAdd:
        clickedView = (NetworkImageView)v;
        showDialog(this);
        break;
    case R.id.:
        layout.removeView((FrameLayout) v.getParent());
        totalImageCount--;
        break;
    }
}

它将解决您的问题。