Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/314.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# 从ListBox中的ListItem获取值而不是文本_C#_Asp.net - Fatal编程技术网

C# 从ListBox中的ListItem获取值而不是文本

C# 从ListBox中的ListItem获取值而不是文本,c#,asp.net,C#,Asp.net,我有这个密码 protected void btnPrasaj_Click(object sender, EventArgs e) { List<ListItem> lista = new List<ListItem>(); string prasanje = null; Application.Lock(); if (Application["prasanja"] == null) // za prvpat se postavuva p

我有这个密码

 protected void btnPrasaj_Click(object sender, EventArgs e)
{
    List<ListItem> lista = new List<ListItem>();
    string prasanje = null;
    Application.Lock();
    if (Application["prasanja"] == null) // za prvpat se postavuva prasanje
    {
        prasanje = txtNaslov.Text + "\n\n\n" + txtPrasanje.Text;
        lista.Add(new ListItem(prasanje, ddltema.SelectedIndex.ToString()));
        lstProblemPrasanje.DataSource = lista;
        lstProblemPrasanje.DataTextField = "Text";
        lstProblemPrasanje.DataValueField = "Value";
        lstProblemPrasanje.DataBind();
        Application["prasanja"] = lista;
    }
    else
    {
        lista=(List<ListItem>)Application["prasanja"];
        prasanje = txtNaslov.Text + "\n\n\n" + txtPrasanje.Text;
        lista.Add(new ListItem(prasanje, ddltema.SelectedIndex.ToString()));
        lstProblemPrasanje.DataSource = lista;
        lstProblemPrasanje.DataTextField = "Text";
        lstProblemPrasanje.DataValueField = "Value";
        lstProblemPrasanje.DataBind();
        Application["prasanja"] = lista;
    }
    Application.UnLock();
}
protectedvoid btnPrasaj_单击(对象发送者,事件参数e)
{
List lista=新列表();
字符串prasanje=null;
Application.Lock();
if(Application[“prasanja”]==null)//za prvpat se postavuva prasanje
{
prasanje=txtNaslov.Text+“\n\n\n”+txtPrasanje.Text;
Add(新列表项(prasanje,ddltema.SelectedIndex.ToString());
lstProblemPrasanje.DataSource=lista;
lstProblemPrasanje.DataTextField=“Text”;
lstProblemPrasanje.DataValueField=“Value”;
lstProblemPrasanje.DataBind();
申请[“prasanja”]=lista;
}
其他的
{
lista=(列表)应用程序[“prasanja”];
prasanje=txtNaslov.Text+“\n\n\n”+txtPrasanje.Text;
Add(新列表项(prasanje,ddltema.SelectedIndex.ToString());
lstProblemPrasanje.DataSource=lista;
lstProblemPrasanje.DataTextField=“Text”;
lstProblemPrasanje.DataValueField=“Value”;
lstProblemPrasanje.DataBind();
申请[“prasanja”]=lista;
}
Application.UnLock();
}

当我在列表框中单击此按钮时,我得到的是数字(这是项目的值),而不是文本字段的内容。

因为您的数据源是列表项目列表,所以不必指定DataTextField和DataValueField。只需注释掉以下几行

lstProblemPrasanje.DataTextField = "Text";
lstProblemPrasanje.DataValueField = "Value";
因此,您的代码应该是:

protected void btnPrasaj_Click(object sender, EventArgs e)
{
    List<ListItem> lista = new List<ListItem>();
    string prasanje = null;
    Application.Lock();
    if (Application["prasanja"] == null) // za prvpat se postavuva prasanje
    {
        prasanje = txtNaslov.Text + "\n\n\n" + txtPrasanje.Text;
        lista.Add(new ListItem(prasanje, ddltema.SelectedIndex.ToString()));
        lstProblemPrasanje.DataSource = lista;
        //lstProblemPrasanje.DataTextField = "Text";
        //lstProblemPrasanje.DataValueField = "Value";
        lstProblemPrasanje.DataBind();
        Application["prasanja"] = lista;
    }
    else
    {
        lista=(List<ListItem>)Application["prasanja"];
        prasanje = txtNaslov.Text + "\n\n\n" + txtPrasanje.Text;
        lista.Add(new ListItem(prasanje, ddltema.SelectedIndex.ToString()));
        lstProblemPrasanje.DataSource = lista;
        //lstProblemPrasanje.DataTextField = "Text";
        //lstProblemPrasanje.DataValueField = "Value";
        lstProblemPrasanje.DataBind();
        Application["prasanja"] = lista;
    }
    Application.UnLock();
}
protectedvoid btnPrasaj_单击(对象发送者,事件参数e)
{
List lista=新列表();
字符串prasanje=null;
Application.Lock();
if(Application[“prasanja”]==null)//za prvpat se postavuva prasanje
{
prasanje=txtNaslov.Text+“\n\n\n”+txtPrasanje.Text;
Add(新列表项(prasanje,ddltema.SelectedIndex.ToString());
lstProblemPrasanje.DataSource=lista;
//lstProblemPrasanje.DataTextField=“Text”;
//lstProblemPrasanje.DataValueField=“Value”;
lstProblemPrasanje.DataBind();
申请[“prasanja”]=lista;
}
其他的
{
lista=(列表)应用程序[“prasanja”];
prasanje=txtNaslov.Text+“\n\n\n”+txtPrasanje.Text;
Add(新列表项(prasanje,ddltema.SelectedIndex.ToString());
lstProblemPrasanje.DataSource=lista;
//lstProblemPrasanje.DataTextField=“Text”;
//lstProblemPrasanje.DataValueField=“Value”;
lstProblemPrasanje.DataBind();
申请[“prasanja”]=lista;
}
Application.UnLock();
}

由于数据源是列表项列表,因此不必指定DataTextField和DataValueField。只需注释掉以下几行

lstProblemPrasanje.DataTextField = "Text";
lstProblemPrasanje.DataValueField = "Value";
因此,您的代码应该是:

protected void btnPrasaj_Click(object sender, EventArgs e)
{
    List<ListItem> lista = new List<ListItem>();
    string prasanje = null;
    Application.Lock();
    if (Application["prasanja"] == null) // za prvpat se postavuva prasanje
    {
        prasanje = txtNaslov.Text + "\n\n\n" + txtPrasanje.Text;
        lista.Add(new ListItem(prasanje, ddltema.SelectedIndex.ToString()));
        lstProblemPrasanje.DataSource = lista;
        //lstProblemPrasanje.DataTextField = "Text";
        //lstProblemPrasanje.DataValueField = "Value";
        lstProblemPrasanje.DataBind();
        Application["prasanja"] = lista;
    }
    else
    {
        lista=(List<ListItem>)Application["prasanja"];
        prasanje = txtNaslov.Text + "\n\n\n" + txtPrasanje.Text;
        lista.Add(new ListItem(prasanje, ddltema.SelectedIndex.ToString()));
        lstProblemPrasanje.DataSource = lista;
        //lstProblemPrasanje.DataTextField = "Text";
        //lstProblemPrasanje.DataValueField = "Value";
        lstProblemPrasanje.DataBind();
        Application["prasanja"] = lista;
    }
    Application.UnLock();
}
protectedvoid btnPrasaj_单击(对象发送者,事件参数e)
{
List lista=新列表();
字符串prasanje=null;
Application.Lock();
if(Application[“prasanja”]==null)//za prvpat se postavuva prasanje
{
prasanje=txtNaslov.Text+“\n\n\n”+txtPrasanje.Text;
Add(新列表项(prasanje,ddltema.SelectedIndex.ToString());
lstProblemPrasanje.DataSource=lista;
//lstProblemPrasanje.DataTextField=“Text”;
//lstProblemPrasanje.DataValueField=“Value”;
lstProblemPrasanje.DataBind();
申请[“prasanja”]=lista;
}
其他的
{
lista=(列表)应用程序[“prasanja”];
prasanje=txtNaslov.Text+“\n\n\n”+txtPrasanje.Text;
Add(新列表项(prasanje,ddltema.SelectedIndex.ToString());
lstProblemPrasanje.DataSource=lista;
//lstProblemPrasanje.DataTextField=“Text”;
//lstProblemPrasanje.DataValueField=“Value”;
lstProblemPrasanje.DataBind();
申请[“prasanja”]=lista;
}
Application.UnLock();
}

对于此类数据源项,您不需要明确指定
数据文本
数据值
字段,还可以通过以下方式删除
if/else
中的重复部分来简化代码:

protected void btnPrasaj_Click(object sender, EventArgs e)
{
    string key = "prasanja";
    List<ListItem> lista = new List<ListItem>();
    string prasanje = null;
    Application.Lock();
    if (Application[key] != null) // za prvpat se postavuva prasanje
    {
        lista = (List<ListItem>)Application[key];
    }

    prasanje = txtNaslov.Text + "\n\n\n" + txtPrasanje.Text;
    lista.Add(new ListItem(prasanje, ddltema.SelectedIndex.ToString()));
    lstProblemPrasanje.DataSource = lista;
    lstProblemPrasanje.DataBind();
    Application[key] = lista;
    Application.UnLock();
}
protectedvoid btnPrasaj_单击(对象发送者,事件参数e)
{
string key=“prasanja”;
List lista=新列表();
字符串prasanje=null;
Application.Lock();
if(Application[key]!=null)//za prvpat se postavuva prasanje
{
lista=(列表)应用程序[键];
}
prasanje=txtNaslov.Text+“\n\n\n”+txtPrasanje.Text;
Add(新列表项(prasanje,ddltema.SelectedIndex.ToString());
lstProblemPrasanje.DataSource=lista;
lstProblemPrasanje.DataBind();
应用程序[键]=lista;
Application.UnLock();
}

对于此类数据源项,您不需要明确指定
数据文本
数据值
字段,还可以通过以下方式删除
if/else
中的重复部分来简化代码:

protected void btnPrasaj_Click(object sender, EventArgs e)
{
    string key = "prasanja";
    List<ListItem> lista = new List<ListItem>();
    string prasanje = null;
    Application.Lock();
    if (Application[key] != null) // za prvpat se postavuva prasanje
    {
        lista = (List<ListItem>)Application[key];
    }

    prasanje = txtNaslov.Text + "\n\n\n" + txtPrasanje.Text;
    lista.Add(new ListItem(prasanje, ddltema.SelectedIndex.ToString()));
    lstProblemPrasanje.DataSource = lista;
    lstProblemPrasanje.DataBind();
    Application[key] = lista;
    Application.UnLock();
}
protectedvoid btnPrasaj_单击(对象发送者,事件参数e)
{
string key=“prasanja”;
List lista=新列表();
字符串prasanje=null;
Application.Lock();
if(Application[key]!=null)//za prvpat se postavuva prasanje
{
lista=(列表)应用程序[键];
}
prasanje=txtNaslov.Text+“\n\n\n”+txtPrasanje.Text;
Add(新列表项(prasanje,ddltema.SelectedIndex.ToString());
lstProblemPrasanje.DataSource=lista;
lstProblemPrasanje.DataBind();
应用程序[键]=lista;
Application.UnLock();
}

从哪里可以得到数字而不是文本?。尝试删除这些行
lstProblemPrasanje.DataTextField=“Text”;lstProblemPrasanje.DataValueField=“Value”从哪里可以得到数字而不是文本?。尝试删除这些行
lstProblemPrasanje.DataTextField=“Text”;lstProblemPrasanje.DataValueField=“Value”