I want to populate a gridview (on modal popup) based on another control. But the grid databound method is never fired. Here is my code..
<div class="modal fade" id="ParamValueTypes" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" onclick="javascript: ClearAndClosetxt();"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>
<h4 class="trpopupHeader" id="ParamValues">Parameters and Values</h4>
</div>
<div class="modal-body">
<asp:Button runat="server" ID="btnViewGrid" CssClass="btn btn-primary btn-xs" Text="View Grid" OnClick="btnViewGrid_Click" />
<asp:GridView ID="ParamValuesGridView" runat="server" BorderStyle="Solid" BorderColor="#DEDFDE"
Width="100%" AllowSorting="True" BackColor="White" AutoGenerateColumns="false"
ForeColor="Black" GridLines="None" BorderWidth="1px" OnDataBound ="ParamValuesGridView_DataBound">
<AlternatingRowStyle BackColor="White" />
<EmptyDataTemplate>
No Records...
</EmptyDataTemplate>
<Columns>
<asp:TemplateField HeaderText="Parameter" Visible="true">
<ItemTemplate>
<asp:Label ID="lblParam" runat="server" Text='<%# Eval("Parameter") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Value" Visible="true">
<EditItemTemplate>
<asp:TextBox ID="txtParamValue" runat="server" Text='<%# Eval("Value") %>' CssClass="RadioButtonList"></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lblParamValue" runat="server" Text='<%# Eval("Value") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</div>
</div>
</div>
.cs code:
protected void ParamValuesGridView_DataBound(object sender, EventArgs e)
{
GridView ParamValues = sender as GridView;
DataTable dt = new DataTable();
if (Session["ParametersForKeyword"] != null)
{
string ParameterList = Session["ParametersForKeyword"].ToString();
String[] Parameters = ParameterList.Split(',');
if (Parameters.Length > 0)
{
dt = CreateParamValues(Parameters);
}
ParamValues.DataSource = dt;
}
}
public DataTable CreateParamValues(string[] Params)
{
DataTable dt = new DataTable();
dt.Columns.Add("Parameter");
dt.Columns.Add("Value");
DataRow dr = null;
for (int i = 0; i < Params.Length; i++)
{
dr = dt.NewRow();
dr["Parameter"] = Params[i];
dr["Value"] = 0;
dt.Rows.Add(dr);
}
return dt;
}