Ответ для 1
Установите для AutoPostBack значение true для ListBox1, например
<asp:ListBox ID="ListBox1" runat="server" AutoPostBack="True".... ></asp:ListBox>
Ответ для 2
При изменении выбора сначала необходимо очистить данные из GridView., как
protected void ListBox1_SelectedIndexChanged(object sender, EventArgs e)
{
dataListings.DataSource = null;
dataListings.DataSourceID = null;
dataListings.DataBind();
........... // Other code goes here
}
Ответ за 3
Получить событие OnDataBinding из GridView
<asp:GridView ID="dataListings" runat="server" AllowSorting="True"
AutoGenerateColumns="False" DataSourceID="LinqDataSource1" >
Добавить событие (onselectedindexchanged) в ListBox1, чтобы оно выглядело как
<asp:ListBox ID="ListBox1" runat="server" AutoPostBack="True"
onselectedindexchanged="ListBox1_SelectedIndexChanged"></asp:ListBox>
Теперь, в событии ListBox1_SelectedIndexChanged, если у вас есть новые данные в запросе для привязки GridView, тогда он будет связывать GridView, но приведенные ниже изменения будут иметь хороший вывод.
var q = ...; //Your query for getting data goes here.
dataListings.DataSource = q;
dataListings.DataSourceID = null;
dataListings.DataBind();
Теперь каждый раз, когда GridView будет заполняться новыми данными из вашего запроса.