Hikankon,
Use below code.
HTML
<form id="form1" runat="server">
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.0.3/css/bootstrap.min.css" />
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.0.3/js/bootstrap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-multiselect/0.9.13/js/bootstrap-multiselect.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-multiselect/0.9.13/css/bootstrap-multiselect.css">
<script type="text/javascript">
$(document).ready(function () {
$('#ddlCountries').multiselect({
checkboxName: function (option) {
var $optgroup = $(option).closest('optgroup');
if ($optgroup.id == 'checkboxName-1') {
return 'group1[]';
}
else {
return 'group2[]';
}
}
});
});
</script>
<select id="ddlCountries" name="multiselect[]" multiple="multiple" required>
<optgroup label="[كهرباء]" id="checkboxName-1" style="color: #FF0000">
<option value="Electrical1">مهندس كهرباء</option>
<option value="Electrical2">اشرافي/ مساعد مهندس كهرباء</option>
<option value="Electrical3">فني كهرباء</option>
</optgroup>
<optgroup label="مدني" id="checkboxName-2">
<option value="civil1">مهندس مدني</option>
<option value="civil2">اشرافي/ مساعد مهندس مدني</option>
<option value="civil3">فني مدني</option>
</optgroup>
<optgroup label="ميكاكنيك" id="checkboxName-3">
<option value="Mechanical1">مهندس ميكانيك</option>
<option value="Mechanical2">اشرافي/ مساعد مهندس ميكانيك</option>
<option value="Mechanical3">فني ميكاكنيك</option>
</optgroup>
<optgroup label="زراعة / نظافة / خدمات فندقية" id="checkboxName-4">
<option value="adaptation1">مهندس زراعة / نظافة / خدمات فندقية</option>
<option value="adaptation2">اشرافي/ مساعد مهندس زراعة / نظافة / خدمات فندقية</option>
<option value="adaptation3">فني زراعة / نظافة / خدمات فندقية</option>
</optgroup>
<optgroup label="حاسوب / الكترونيات / اتصالات" id="checkboxName-5">
<option value="computer1">مهندس حاسوب / الكترونيات / اتصالات</option>
<option value="computer2">اشرافي/ مساعد مهندس حاسوب / الكترونيات / اتصالات</option>
<option value="computer3">فني حاسوب / الكترونيات / اتصالات</option>
</optgroup>
<optgroup label="إداري" id="checkboxName-6">
<option value="Accountant">محاسب</option>
<option value="official">إداري</option>
<option value="Driver">سائق</option>
</optgroup>
</select>
<asp:Button ID="btnSubmit" Text="Submit" runat="server" OnClick="OnSubmit" />
<br />
<rsweb:reportviewer id="ReportViewer1" runat="server" width="528px" sizetoreportcontent="true" zoommode="PageWidth" height="615px">
</rsweb:reportviewer>
<hr />
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
</form>
C#
private void BindReport(string query)
{
ReportViewer1.ProcessingMode = ProcessingMode.Local;
ReportViewer1.LocalReport.ReportPath = Server.MapPath("~/reportviewer/reporteng.rdlc");
DataSet1 dsCustomers = GetData(query);
ReportDataSource datasource = new ReportDataSource("DataSet1", dsCustomers.Tables["Table_infoname"]);
ReportViewer1.LocalReport.DataSources.Clear();
ReportViewer1.LocalReport.DataSources.Add(datasource);
}
protected void OnSubmit(object sender, EventArgs e)
{
string query = "SELECT id,name,jop,markazel3mal,blockspecial FROM Table_infoname";
string condition = string.Empty;
foreach (string item in Request.Form["multiselect[]"].Split(','))
{
condition += string.Format("'{0}',", item);
}
if (!string.IsNullOrEmpty(condition))
{
condition = string.Format(" WHERE blockspecial IN ({0})", condition.Substring(0, condition.Length - 1));
}
this.BindReport(query + condition);
}
private DataSet1 GetData(string query)
{
string conString = ConfigurationManager.ConnectionStrings["kankonConnectionString"].ConnectionString;
using (SqlConnection con = new SqlConnection(conString))
{
using (SqlCommand cmd = new SqlCommand(query, con))
{
using (SqlDataAdapter sda = new SqlDataAdapter(cmd))
{
using (DataSet1 dsCustomers = new DataSet1())
{
sda.Fill(dsCustomers, "Table_infoname");
return dsCustomers;
}
}
}
}
}