Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 导致搜索开始的下拉默认选择_C#_Asp.net - Fatal编程技术网

C# 导致搜索开始的下拉默认选择

C# 导致搜索开始的下拉默认选择,c#,asp.net,C#,Asp.net,我们有一个带有多个文本框的搜索页面,用户可以通过这些文本框输入数据进行搜索。有一些日期文本框,可以在其中输入日期范围。有一个下拉列表,您可以在其中选择要筛选的日期字段 默认情况下,日期范围文本框未启用。只有在下拉列表中选择日期字段,才能输入日期。默认下拉选择为“空白” 如果选择一个日期字段,然后在下拉列表中更改为另一个日期字段,则一切正常。如果在下拉列表中选择日期字段,然后切换回默认的“”空白,则会触发搜索。我不希望这种情况发生。我只希望在他们单击搜索按钮时进行搜索 protected vo

我们有一个带有多个文本框的搜索页面,用户可以通过这些文本框输入数据进行搜索。有一些日期文本框,可以在其中输入日期范围。有一个下拉列表,您可以在其中选择要筛选的日期字段

默认情况下,日期范围文本框未启用。只有在下拉列表中选择日期字段,才能输入日期。默认下拉选择为“空白”

如果选择一个日期字段,然后在下拉列表中更改为另一个日期字段,则一切正常。如果在下拉列表中选择日期字段,然后切换回默认的“”空白,则会触发搜索。我不希望这种情况发生。我只希望在他们单击搜索按钮时进行搜索

  protected void ddlDateType_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (ddlDateType.SelectedValue != "")
        {
            txtSearchEndDate.Enabled = true;
            txtSearchStartDate.Enabled = true;
        }

        else
        {
            txtSearchEndDate.Text = "";
            txtSearchStartDate.Text = "";
            txtSearchEndDate.Enabled = false;
            txtSearchStartDate.Enabled = false;
        }
    }
有人可以告诉我,当有人切换回下拉列表中的默认“”选项时,如何停止搜索运行



我注释掉了if-else代码,仍然得到了相同的结果。选择除默认无搜索外的任何内容将启动,选择默认“”将触发搜索。

我认为您最好将该逻辑更改为在javascript中操作,这样就不必将整个页面发回以启用或禁用控件

我在下面添加了一些示例代码,您可以从选定索引更改的客户端事件触发这些代码,我相信这就是onchange事件。您可以在代码隐藏中添加此事件,如下所示:

Add(“onchange”,“OnDateTypeChanged()”

此代码还更改了textbox的类,以包含TextDisabled CSS类,以直观地指示textbox已禁用,但这是可选的

function OnDateTypeChanged() {
    var ddList = document.getElementById("ddlDateType");
    var fReadOnly = true;
    if (ddList.selectedIndex >= 0)
    {
        fReadOnly = (ddList.options[ddList.selectedIndex] != '');
    }

    var oTextBox;

    oTextBox = document.getElementById("txtSearchEndDate");
    SetTextboxReadOnly(oTextBox, fReadOnly);
    if (fReadOnly) {
       oTextBox.value = '';
    }

    oTextBox = document.getElementById("txtSearchStartDate");
    SetTextboxReadOnly(oTextBox, fReadOnly);
    if (fReadOnly) {
       oTextBox.value = '';
    }
}

function SetTextboxReadOnly(oTextBox, fReadOnly) {
    /// <summary>This method sets or clears the readonly flag on an textbox. It also updates the class information to
    /// ensure that the control is displayed correctly to the user</summary>

    if (oTextBox) {
        oTextBox.readOnly = fReadOnly;
        oTextBox.className = UpdateClassForReadOnlyChange(fReadOnly, oTextBox.className);
    }
}

function UpdateClassForReadOnlyChange(fReadOnly, sClassName) {
    /// <summary>This is an internal method used to update a class based on the readonly flag</summary>

    if (fReadOnly) {
        return 'TextDisabled ' + sClassName;
    } else {
        return sClassName.replace(/TextDisabled /gi, '');
    }
}
函数OnDateTypeChanged(){
var ddList=document.getElementById(“ddlDateType”);
var-fReadOnly=true;
如果(ddList.selectedIndex>=0)
{
fReadOnly=(ddList.options[ddList.selectedIndex]!='';
}
var-oTextBox;
oTextBox=document.getElementById(“txtSearchEndDate”);
SettextBox只读(oTextBox,fReadOnly);
if(fReadOnly){
oTextBox.value='';
}
oTextBox=document.getElementById(“txtSearchStartDate”);
SettextBox只读(oTextBox,fReadOnly);
if(fReadOnly){
oTextBox.value='';
}
}
函数SetTextboxReadOnly(oTextBox,fReadOnly){
///此方法设置或清除文本框上的只读标志。它还将类信息更新为
///确保向用户正确显示控件
如果(oTextBox){
oTextBox.readOnly=fReadOnly;
oTextBox.className=UpdateClassForReadOnlyChange(fReadOnly,oTextBox.className);
}
}
函数UpdateClassForReadOnlyChange(fReadOnly,sClassName){
///这是一个内部方法,用于根据readonly标志更新类
if(fReadOnly){
返回'TextDisabled'+sClassName;
}否则{
返回sClassName.replace(/TextDisabled/gi',);
}
}

可能会添加:if(selected_index=“”)return是页面加载事件中的搜索方法吗?当下拉列表正在执行回发时,它将在页面加载事件中运行代码。你能在页面加载事件中发布代码吗,谢谢。